import java.math.*

fun main(args: Array<String>) {
    var (D, G) = readInputLine().split(" ").map{it.toInt()}
    G /= 100
    
    // (問題数, ボーナス)
    val problems = Array(D, {Pair(0, 0)})
    
    for (i in 0 until D) {
        val tmp = readInputLine().split(" ").map{it.toInt()}
        problems[i] = Pair(tmp[0], tmp[1] / 100)
    }

    var ans = Int.MAX_VALUE
    
    for (i in 0 until (1 shl D)) {
        var score = 0
        var cnt = 0
        for (j in 0 until D) {
            if (i and (1 shl j) != 0) {
                score += problems[j].first * (j + 1) + problems[j].second
                cnt += problems[j].first
            }
        }

        if (score >= G) {
            ans = Math.min(ans, cnt)
            continue
        }
        
        for (j in D - 1 downTo 0) {
            if (i and (1 shl j) != 0) {
                continue
            }
            for (k in 1 until problems[j].first) {
                score += j + 1
                cnt++
                if (score >= G) {
                    break
                }
            }
            if (score >= G) {
                break
            }
        }
        
        if (score >= G) {
            ans = Math.min(ans, cnt)
        }
    }
    
    println(ans)
}

fun readInputLine(): String {
    return readLine()!!
}
