from operator import attrgetter


class Damage:
    def __init__(self, a, b):
        self.a = a
        self.b = b


N, H = map(int, input().split())
damages = []
for _ in range(N):
    a, b = map(int, input().split())
    damages.append(Damage(a, b))
damages = sorted(damages, key=attrgetter("b"), reverse=True)

max_a_damage = (max(damages, key=lambda damage: damage.a)).a
cnt = 0
sum = 0
for damage in damages:
    if damage.b <= max_a_damage:
        cnt += int((H-sum) / max_a_damage)
        if (H-sum) % max_a_damage > 0:
            cnt += 1
        sum = H
        break
    else:
        cnt += 1
        sum += damage.b
        if H < sum:
            break
if H-sum > 0:
    cnt += int((H-sum) / max_a_damage)
    if (H-sum) % max_a_damage > 0:
        cnt += 1

print(cnt)
