import math
from bisect import bisect_right, bisect_left
import sys
N, H = map(int, input().split())
a = [0] * N
b = [0] * N
for n in range(N):
    a[n], b[n] = map(int, input().split())
maximum = max(a)

sorted_b = sorted(b)

ans = 0

first = [sorted_b[i] for i in range(N - 1, bisect_left(sorted_b, maximum) - 1, -1)]
ans += len(first)
H_left = H - sum(first)

if H_left < 0:
    sorted_b = sorted(b, reverse=True)
    HP = H
    for i in range(N):
        HP -= sorted_b[i]
        if HP < 0:
            print(i + 1)
            sys.exit()

ans += math.ceil(H_left / maximum)
print(ans)