D, G = [int(str) for str in input().strip().split()]

PC = [[int(str) for str in input().strip().split()] for _ in range(D)]



ans = 10 ** 4



for bits in range(2 ** D + 1):

    num, score = 0, 0

    for i in range(D):

        if (0x01 << i) & bits:

            score += PC[i][0] * (i + 1) * 100 + PC[i][1]

            num += PC[i][0]

    

    i = D - 1

    pnum = 0

    while score < G and i >= 0:

        if not (0x01 << i) & bits:

            score += (i + 1) * 100

            num += 1

            pnum += 1

            if pnum >= PC[i][0]:

                pnum = 0

                i -= 1

        else:

            i -= 1

    

    if score >= G:

        ans = min(ans, num)



print(ans)
#!/usr/bin/env python3

D, G = [int(str) for str in input().strip().split()]

pc = [[int(str) for str in input().strip().split()] for _ in range(D)]



ans = float('Inf')

sums = [100 * (i + 1) * pc[i][0] + pc[i][1] for i in range(D)]

for bit in range(2 ** D):

    score = 0

    cnt = 0

    for i in range(D):

        if bit & (0x01 << i):

            score += sums[i]

            cnt += pc[i][0]



    i = D - 1

    while score < G and i >= 0:

        if not(bit & (0x01 << i)):

            cnt_now = min(-(-(G - score) // (100 * (i + 1))), pc[i][0])

            cnt += cnt_now

            score += cnt_now * 100 * (i + 1)

        i -= 1



    if score >= G:

        ans = min(ans, cnt)



print(ans)
D, G = [int(str) for str in input().strip().split()]
PC = [[int(str) for str in input().strip().split()] for _ in range(D)]
ans = 10**4
for bits in range(2**D + 1):
    num, score = 0, 0
    for i in range(D):
        if (0x01 << i) & bits:
            score += PC[i][0] * (i + 1) * 100 + PC[i][1]
            num += PC[i][0]
    i = D - 1
    pnum = 0
    while score < G and i >= 0:
        if not (0x01 << i) & bits:
            score += (i + 1) * 100
            num += 1
            pnum += 1
            if pnum >= PC[i][0]:
                pnum = 0
                i -= 1
        else:
            i -= 1
    if score >= G:
        ans = min(ans, num)
print(ans)

#!/usr/bin/env python3
D, G = [int(str) for str in input().strip().split()]
pc = [[int(str) for str in input().strip().split()] for _ in range(D)]
ans = float("Inf")
sums = [100 * (i + 1) * pc[i][0] + pc[i][1] for i in range(D)]
for bit in range(2**D):
    score = 0
    cnt = 0
    for i in range(D):
        if bit & (0x01 << i):
            score += sums[i]
            cnt += pc[i][0]
    i = D - 1
    while score < G and i >= 0:
        if not (bit & (0x01 << i)):
            cnt_now = min(-(-(G - score) // (100 * (i + 1))), pc[i][0])
            cnt += cnt_now
            score += cnt_now * 100 * (i + 1)
        i -= 1
    if score >= G:
        ans = min(ans, cnt)
print(ans)

+#!/usr/bin/env python3 -PC = [[int(str) for str in input().strip().split()] for _ in range(D)] -ans = 10**4 -for bits in range(2**D + 1): -    num, score = 0, 0 +pc = [[int(str) for str in input().strip().split()] for _ in range(D)] +ans = float("Inf") +sums = [100 * (i + 1) * pc[i][0] + pc[i][1] for i in range(D)] +for bit in range(2**D): +    score = 0 +    cnt = 0 -        if (0x01 << i) & bits: -            score += PC[i][0] * (i + 1) * 100 + PC[i][1] -            num += PC[i][0] +        if bit & (0x01 << i): +            score += sums[i] +            cnt += pc[i][0] -    pnum = 0 -        if not (0x01 << i) & bits: -            score += (i + 1) * 100 -            num += 1 -            pnum += 1 -            if pnum >= PC[i][0]: -                pnum = 0 -                i -= 1 -        else: -            i -= 1 +        if not (bit & (0x01 << i)): +            cnt_now = min(-(-(G - score) // (100 * (i + 1))), pc[i][0]) +            cnt += cnt_now +            score += cnt_now * 100 * (i + 1) +        i -= 1 -        ans = min(ans, num) +        ans = min(ans, cnt)