n,h=map(int,input().split())
ab=[list(map(int,input().split())) for i in range(n)]
ab.sort(reverse=True,key=lambda x:x[1])

a_max=0
for a,b in ab:
  a_max=max(a,a_max)

cnt=0
damage=0
for a,b in ab:
  if damage>=h:
    print(cnt)
    exit()
  if b<=a_max:
    break

  cnt+=1
  damage+=b

zan=h-damage
cnt+=(zan+a_max-1)//a_max
print(cnt)