#!/usr/bin/env python3

n, h, *A = list(map(int, open(0).read().split()))

a = max(A[::2])

b = sorted(A[1::2])[::-1]

for i in range(n):

    if h <= 0:

        print(i)

        exit()

    if b[i] < a:

        print((i - (-h // a)))

        exit()

    h -= b[i]

print((n - (-h // a)))

n, h, *A = list(map(int, open(0).read().split()))

a = max(A[::2])

b = sorted(A[1::2])[::-1]

for i in range(n):

    if h <= 0:

        n = i

        h = 0

        break

    if b[i] < a:

        n = i

        break

    h -= b[i]

print((n - (-h // a)))

#!/usr/bin/env python3
n, h, *A = list(map(int, open(0).read().split()))
a = max(A[::2])
b = sorted(A[1::2])[::-1]
for i in range(n):
    if h <= 0:
        print(i)
        exit()
    if b[i] < a:
        print((i - (-h // a)))
        exit()
    h -= b[i]
print((n - (-h // a)))

n, h, *A = list(map(int, open(0).read().split()))
a = max(A[::2])
b = sorted(A[1::2])[::-1]
for i in range(n):
    if h <= 0:
        n = i
        h = 0
        break
    if b[i] < a:
        n = i
        break
    h -= b[i]
print((n - (-h // a)))

-#!/usr/bin/env python3 -        print(i) -        exit() +        n = i +        h = 0 +        break -        print((i - (-h // a))) -        exit() +        n = i +        break