n,h = map(int, input().split())
katana = [list(map(int, input().split())) for _ in range(n)]
turn = 0

katana.sort()
slash = katana.pop()
throw = []

while True:
    k = katana.pop()
    if k[0] == slash[0]:
        throw.append(slash[1])
        slash = k
    else:
        break
if len(katana) > 1:
    a,b = map(list, zip(*katana))
    b.sort()
    while True:
        t = b.pop()
        if t > slash[0]:
            throw.append(t)
        else:
            break
elif katana:
    k = katana.pop()
    if k[1] > slash[0]:
        throw.append(k[1])

throw.append(slash[1])

if sum(throw) > h:
    throw.sort()
    while h > 0:
        h -= throw.pop()
        turn += 1
else:
    turn += len(throw)
    h -= sum(throw)
    turn += (h-1)//slash[0] + 1

print(trun)