def main():

    D, G = list(map(int, input().split()))

    info = [tuple(map(int, input().split())) for _ in range(D)]



    ans = 100 * 10

    for bit in range(1<<D):

        score = 0

        num_problem = 0



        # complete bonus

        for i in range(D):

            if (bit>>i) & 1:

                base = 100 * (i+1)

                score += base * info[i][0] + info[i][1]

                num_problem += info[i][0]

        # other 

        for i in range(D-1, -1, -1):

            if score >= G:

                break

            

            if not((bit>>i) & 1):

                base = 100 * (i+1)

                rest = G - score

                need = (rest + base - 1) // base



                if need > info[i][0] - 1:

                    score += base * (info[i][0] - 1)

                    num_problem += (info[i][0] - 1)

                else:

                    score += base * need

                    num_problem += need

                    break

        

        if score >= G:

            ans = min(ans, num_problem)



    print(ans)





if __name__ == "__main__":

    main()
def main():

    D, G = list(map(int, input().split()))

    info = [tuple(map(int, input().split())) for _ in range(D)]



    ans = 100 * 10

    for bit in range(1<<D):

        score = 0

        num_problem = 0



        # complete bonus

        for i in range(D):

            if (bit>>i) & 1:

                base = 100 * (i+1)

                score += base * info[i][0] + info[i][1]

                num_problem += info[i][0]

        

        # other

        if score >= G:

            ans = min(ans, num_problem)

        else:

            for i in range(D-1, -1, -1):

                if not((bit>>i) & 1):

                    rest = G - score

                    base = 100 * (i+1)

                    need = (rest + base -1) // base

                    if need <= info[i][0] - 1:

                        num_problem += need

                        score += base * need

                        ans = min(ans, num_problem)

                    break



    print(ans)





if __name__ == "__main__":

    main()
def main():
    D, G = list(map(int, input().split()))
    info = [tuple(map(int, input().split())) for _ in range(D)]
    ans = 100 * 10
    for bit in range(1 << D):
        score = 0
        num_problem = 0
        # complete bonus
        for i in range(D):
            if (bit >> i) & 1:
                base = 100 * (i + 1)
                score += base * info[i][0] + info[i][1]
                num_problem += info[i][0]
        # other
        for i in range(D - 1, -1, -1):
            if score >= G:
                break
            if not ((bit >> i) & 1):
                base = 100 * (i + 1)
                rest = G - score
                need = (rest + base - 1) // base
                if need > info[i][0] - 1:
                    score += base * (info[i][0] - 1)
                    num_problem += info[i][0] - 1
                else:
                    score += base * need
                    num_problem += need
                    break
        if score >= G:
            ans = min(ans, num_problem)
    print(ans)


if __name__ == "__main__":
    main()

def main():
    D, G = list(map(int, input().split()))
    info = [tuple(map(int, input().split())) for _ in range(D)]
    ans = 100 * 10
    for bit in range(1 << D):
        score = 0
        num_problem = 0
        # complete bonus
        for i in range(D):
            if (bit >> i) & 1:
                base = 100 * (i + 1)
                score += base * info[i][0] + info[i][1]
                num_problem += info[i][0]
        # other
        if score >= G:
            ans = min(ans, num_problem)
        else:
            for i in range(D - 1, -1, -1):
                if not ((bit >> i) & 1):
                    rest = G - score
                    base = 100 * (i + 1)
                    need = (rest + base - 1) // base
                    if need <= info[i][0] - 1:
                        num_problem += need
                        score += base * need
                        ans = min(ans, num_problem)
                    break
    print(ans)


if __name__ == "__main__":
    main()

-        for i in range(D - 1, -1, -1): -            if score >= G: -                break -            if not ((bit >> i) & 1): -                base = 100 * (i + 1) -                rest = G - score -                need = (rest + base - 1) // base -                if need > info[i][0] - 1: -                    score += base * (info[i][0] - 1) -                    num_problem += info[i][0] - 1 -                else: -                    score += base * need -                    num_problem += need -                    break +        else: +            for i in range(D - 1, -1, -1): +                if not ((bit >> i) & 1): +                    rest = G - score +                    base = 100 * (i + 1) +                    need = (rest + base - 1) // base +                    if need <= info[i][0] - 1: +                        num_problem += need +                        score += base * need +                        ans = min(ans, num_problem) +                    break