d, g = list(map(int, input().split()))

dic = {}

ans = 9999999

for i in range(1, d+1):

    dic[i] = list(map(int, input().split()))



for i in range(2**d):

    total = 0

    count = 0

    select_list = list(range(1, d+1))

    for j in range(d):

        if (i >> j) & 1:

            num = dic[j+1][0]

            total += 100*(j+1)*num + dic[j+1][1]

            count += dic[j+1][0]

            select_list.remove(j+1)



    if total >= g:

        if count < ans:

            ans = count

            continue

        else:

            continue



    else:

        select = max(select_list)

        select_num = dic[select][0]

        for _ in range(select_num):

            total += 100*select

            count += 1



            if total >= g:

                if count < ans:

                    ans = count

                    break

                else:

                    break



print(ans)

d, goal = list(map(int, input().split()))



problems = []

for i in range(1, d+1):

    num, bonus = list(map(int, input().split()))

    point = i * 100

    problems.append([point, num, bonus])





ans = []

for mask in range(2**d):

    score = 0

    count = 0

    target = 0

    for bit in range(d):

        if (mask >> bit) & 1:  #全て解く

            point, num, bonus = problems[bit]

            score += (point*num) + bonus

            count += num

        else:

            target = bit



    if score >= goal:

        ans.append(count)

    else:

        point, num, bonus = problems[target]

        delta = goal - score

        add = delta//point + bool(delta%point)

        if add < num:

            ans.append(count+add)

        else:

            continue



print((min(ans)))
d, g = list(map(int, input().split()))
dic = {}
ans = 9999999
for i in range(1, d + 1):
    dic[i] = list(map(int, input().split()))
for i in range(2**d):
    total = 0
    count = 0
    select_list = list(range(1, d + 1))
    for j in range(d):
        if (i >> j) & 1:
            num = dic[j + 1][0]
            total += 100 * (j + 1) * num + dic[j + 1][1]
            count += dic[j + 1][0]
            select_list.remove(j + 1)
    if total >= g:
        if count < ans:
            ans = count
            continue
        else:
            continue
    else:
        select = max(select_list)
        select_num = dic[select][0]
        for _ in range(select_num):
            total += 100 * select
            count += 1
            if total >= g:
                if count < ans:
                    ans = count
                    break
                else:
                    break
print(ans)

d, goal = list(map(int, input().split()))
problems = []
for i in range(1, d + 1):
    num, bonus = list(map(int, input().split()))
    point = i * 100
    problems.append([point, num, bonus])
ans = []
for mask in range(2**d):
    score = 0
    count = 0
    target = 0
    for bit in range(d):
        if (mask >> bit) & 1:  # 全て解く
            point, num, bonus = problems[bit]
            score += (point * num) + bonus
            count += num
        else:
            target = bit
    if score >= goal:
        ans.append(count)
    else:
        point, num, bonus = problems[target]
        delta = goal - score
        add = delta // point + bool(delta % point)
        if add < num:
            ans.append(count + add)
        else:
            continue
print((min(ans)))

-d, g = list(map(int, input().split())) -dic = {} -ans = 9999999 +d, goal = list(map(int, input().split())) +problems = [] -    dic[i] = list(map(int, input().split())) -for i in range(2**d): -    total = 0 +    num, bonus = list(map(int, input().split())) +    point = i * 100 +    problems.append([point, num, bonus]) +ans = [] +for mask in range(2**d): +    score = 0 -    select_list = list(range(1, d + 1)) -    for j in range(d): -        if (i >> j) & 1: -            num = dic[j + 1][0] -            total += 100 * (j + 1) * num + dic[j + 1][1] -            count += dic[j + 1][0] -            select_list.remove(j + 1) -    if total >= g: -        if count < ans: -            ans = count -            continue +    target = 0 +    for bit in range(d): +        if (mask >> bit) & 1:  # 全て解く +            point, num, bonus = problems[bit] +            score += (point * num) + bonus +            count += num +        else: +            target = bit +    if score >= goal: +        ans.append(count) +    else: +        point, num, bonus = problems[target] +        delta = goal - score +        add = delta // point + bool(delta % point) +        if add < num: +            ans.append(count + add) -    else: -        select = max(select_list) -        select_num = dic[select][0] -        for _ in range(select_num): -            total += 100 * select -            count += 1 -            if total >= g: -                if count < ans: -                    ans = count -                    break -                else: -                    break -print(ans) +print((min(ans)))