from operator import itemgetter

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

huru_max=0
for i in range(n):
  huru_max = max(huru_max,info[i][0])
#print(huru_max)

sorted_nageru = sorted(info,key=itemgetter(1),reverse=True)
#print(sorted_nageru)
for i in range(n):
  if sorted_nageru[i][1]<huru_max:
    sorted_n=i
    del sorted_nageru[i:]
    break
  sorted_n=i+1
    
sorted_nageru = sorted(sorted_nageru,key=itemgetter(1))

ruiseki = 0

for i in range(sorted_n):
  ruiseki = ruiseki+sorted_nageru[i][1]
  sorted_nageru[i][1] = ruiseki
  
#print(sorted_nageru)

for i in range(sorted_n-1,-1,-1):
  if sorted_nageru[i][1]>=h:
    if i ==0:
      print(i+1)
    if sorted_nageru[i-1][1]<h:
      print(i+1)
      break
  elif sorted_nageru[i][1]<h:
    print((i+1)-(-(h-sorted_nageru[i][1]))//huru_max)
    break

