fun main(args: Array<String>) {
    val (d, g) = readLine()?.split(" ")?.map { it.toInt() } ?: return
    val pcList: List<Pair<Int, Int>> = (0 until d).map { ignore ->
        val (p, c) = readLine()?.split(" ")?.map { it.toInt() }!!
        p to c
    }

    var result = Int.MAX_VALUE

    for (flg in 0..(1 shl d)) { // 2^dパターンを調べる必要がある
        var total = 0
        var count = 0
        for (i in 0 until d) {
            // bitが立っている問題を完全回答してボーナスをもらう
            if (flg.and(1 shl i) != 0) {
                total += (((i + 1) * 100 * pcList[i].first) + pcList[i].second)
                count += pcList[i].first
            }
        }
        // 目標点に到達していたらそこでおしまい
        if (total >= g) {
            result = Math.min(result, count)
            continue
        }

        // 目標点に届いてない場合には完全回答していない問題のうち、
        // 得点の高い問題から解いていく
        for (i in (d - 1) downTo 0) {
            // 完全回答対象は無視
            if (flg.and(1 shl i) != 0) {
                continue
            }
            // 完全回答はしない
            for (n in 1 until (pcList[i].first)) {
                total += ((i + 1) * 100)
                count++
                if (total >= g) {
                    break
                }
            }

            if (total >= g) {
                result = Math.min(result, count)
                break
            }
        }
    }
    println(result)
}