# -*- coding: utf-8 -*-
from collections import defaultdict
import math
N, H = map(int, input().split())
ab = [list(map(int, input().split())) for _ in range(N)]

ab.sort(key=(lambda x:(-x[0],-x[1])))

max_a, max_b = ab[0]
hp = 0
att = 0

if max_b >= H:
    att += 1
    hp += max_b

for a,b in [(a,b) for a,b in ab[1:] if b > max_a]:
    hp += b
    att += 1
    if hp >= H:
        break

if hp < H:
    #最後の１回は投げる（a<=bなので）
    att += 1
    hp += max_b

if hp < H:
    #max_aできり続ける
    att += math.ceil((H - hp)/max_a)

print(att)
