import java.util.*
import java.math.*
import java.lang.Math.*

private val readString: ()->String = {readLine()!!}
private val readInt: ()->Int = { readLine()!!.toInt() }
private val readLong: ()->Long = { readLine()!!.toLong() }
private val readListInt: ()->List<Int> = { readLine()!!.split(' ').map(String::toInt) }
private val readListLong: ()->List<Long> = { readLine()!!.split(' ').map(String::toLong) }
private val errPrintln: (String)->Unit = { msg -> System.err.println(msg) }
private val MOD = 1e9.toLong()+7


fun solveC(D:Int, G:Int, P:Array<Int>, C:Array<Int>): Int {
    var res = Int.MAX_VALUE

    for (p in 0 until (0b01 shl D)) {
        var ptn = p
        var score = 0
        var count = 0
        val solved = Array<Boolean>(D){false}
        for (i in D-1 downTo  0) {
            val point = 100*(i+1)
            if ((ptn and 0b01) == 1) {
                score += point * P[i] + C[i]
                count += P[i]
                solved[i] = true
            }
            ptn = ptn shr 1
        }
        if (score < G) {
            for (i in D - 1 downTo 0) {
                if (solved[i]) continue

                val point = 100 * (i + 1)
                val dcnt = min((G - score + point - 1) / point, P[i] - 1)
                count += dcnt
                score += point * dcnt

                if (score >= G) break
            }
        }
        if (G <= score) {
            res = Math.min(res, count)
        }
    }

    return res
}


fun main(args: Array<String>) {
    val (D,G) = readListInt()
    val P = Array<Int>(D){0}
    val C = Array<Int>(D){0}

    for(i in 0 until D) {
        val pc = readListInt()
        P[i] = pc[0]
        C[i] = pc[1]
    }

    val ans = solveC(D, G, P, C)

    println(ans)
}
