N, H = map(int, input().split())
a = []
b = []
for i in range(N):
    tmpa, tmpb = map(int, input().split())
    a.append(tmpa)
    b.append(tmpb)
#print(a)
#print(b)

overa = [x for x in b if x > max(a)]
overa.sort(reverse=True)
#overa.reverse()
#print("overa")
#print(overa)
count = 0
if H > sum(overa):
    H -= sum(overa)
    count = len(overa)
#    print("if")
else:
    for tmp in overa:
#        print("for")
#        print(H, tmp)
        H -= tmp
        count += 1
        if H < 0:
            break
if H > 0:
#    print(H, max(a))
    count += (H+max(a)-1)//max(a)
print(count)
