from bisect import bisect_left, bisect_right
from itertools import accumulate

n, h = map(int, input().split())
xs = [[int(x) for x in input().split()] for _ in range(n)]

a = max(x[0] for x in xs)
ys = sorted(-x[1] for x in xs)
zs = [0] + list(accumulate(-y for y in ys))

i = bisect_left(ys, -a)
j = bisect_right(zs, h)

b_count = min(i, j, n)
remaining = max(h - zs[b_count], 0)
a_count = (remaining + a - 1) // a
print(b_count + a_count)