import sys
n,h=map(int,input().split())
damage=[]
attack=0
count=0
flag=True
for i in range(n):
    a,b=map(int,input().split())
    damage.append([i,a,b])
throw=sorted(damage,key=lambda x:x[2],reverse=True)
swung=sorted(damage,key=lambda x:x[1],reverse=True)
swungmax=swung[0][1]
kirifuda=swung[0][2]
for i in range(n):
    if attack+kirifuda>=h:
        count+=1
        print(count)
        sys.exit()
    else:
        if throw[i][2]>swungmax:
            attack+=throw[i][2]
            count+=1
            if attack>=h:
                print(count)
                sys.exit()
while flag==True:
    if attack+kirifuda>=h:
        count+=1
        print(count)
        flag=False
    else:
        attack+=swungmax
        count+=1
