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

swing = []
throw = []

for _ in range(N):
    a, b = list(map(int, input().split()))
    swing.append(a)
    throw.append(b)

max_swing = max(swing)
throw = sorted(throw, reverse=True)
throw = (list)(filter(lambda x: x > max_swing, throw))

attack_co = (-H//max_swing)*(-1)


sum_d = attack_co * max_swing

for d in throw:
    sum_d = sum_d - max_swing + d
    over = (sum_d-H)//max_swing
    sum_d -= over * max_swing
    attack_co -= over


print(attack_co)
