import sys

N,H = list(map(int,input().split()))

A = 0

B = []

for _ in range(N):

    a,b = list(map(int,input().split()))

    A = max(A,a)

    B.append(b)

B.sort(reverse=True)



ans = 0

for b in B:

    if b > A:

        H -= b

        ans += 1

    else:

        break

    if H <= 0:

        print(ans)

        sys.exit()



print(((H-1)//A +1 +ans))

# python3 (3.4.3)

import sys

input = sys.stdin.readline



# main

N,H = list(map(int,input().split()))

A,B = 0,[]

for i in range(N):

    a,b = list(map(int,input().split()))

    A = max(A,a)

    B.append(b)



ans = 0



B.sort(reverse=True)

for b in B:

    if b > A:

        ans += 1

        H -= b

        if H <= 0:

            print(ans)

            sys.exit()

            

print((ans + (H-1)//A + 1))
import sys

N, H = list(map(int, input().split()))
A = 0
B = []
for _ in range(N):
    a, b = list(map(int, input().split()))
    A = max(A, a)
    B.append(b)
B.sort(reverse=True)
ans = 0
for b in B:
    if b > A:
        H -= b
        ans += 1
    else:
        break
    if H <= 0:
        print(ans)
        sys.exit()
print(((H - 1) // A + 1 + ans))

# python3 (3.4.3)
import sys

input = sys.stdin.readline
# main
N, H = list(map(int, input().split()))
A, B = 0, []
for i in range(N):
    a, b = list(map(int, input().split()))
    A = max(A, a)
    B.append(b)
ans = 0
B.sort(reverse=True)
for b in B:
    if b > A:
        ans += 1
        H -= b
        if H <= 0:
            print(ans)
            sys.exit()
print((ans + (H - 1) // A + 1))

+# python3 (3.4.3) +input = sys.stdin.readline +# main -A = 0 -B = [] -for _ in range(N): +A, B = 0, [] +for i in range(N): +ans = 0 -ans = 0 +        ans += 1 -        ans += 1 -    else: -        break -    if H <= 0: -        print(ans) -        sys.exit() -print(((H - 1) // A + 1 + ans)) +        if H <= 0: +            print(ans) +            sys.exit() +print((ans + (H - 1) // A + 1))