n, h = map(int, input().split())
slash = 0
throw = []

for i in range(n):
    a, b = map(int, input().split())
    slash = max(slash, a)
    throw.append(b)

throw.sort(reverse=True)
count = 0

for damage in throw:
    if h < 0:
        break
    if damage <= slash:
        break
    h -= damage
    count += 1

count += h//slash
count += bool(h % slash)
print(count)