import numpy as np


def check():
  n, h = map(int, raw_input().split())
  katana = np.array([map(int, raw_input().split()) for _ in range(n)])
  kfuru = katana[:,0]
  knage = katana[:,1]

  furumax = np.max(kfuru)
  nageok = knage[np.where(knage>furumax)] 
  nagemax = np.sum(nageok)

  if(h<=nagemax):
    nageok = np.sort(nageok)[::-1]
    for i in range(np.size(nageok)+1):
      if(h<=np.sum(nageok[:i])):
        return i
  else:
    nnage = np.size(nageok)
    hfuru = h - nagemax
    if(hfuru%furumax==0):
      return hfuru/furumax+nnage
    else:
      return hfuru/furumax+nnage + 1


if __name__=='__main__':
  print check()
