N, H = map(int, input().split())

class Sord:
  def __init__(self, a, b):
    self.hit = a
    self.throw = b

sords = []
maxhit = None
for a, b in (map(int, input().split()) for _ in range(N)):
  s = Sord(a, b)
  sords.append(s)
  if maxhit is None:
    maxhit = s
  elif s.hit > maxhit.hit or s.hit == maxhit.hit and s.throw > maxhit.throw:
    maxhit = s

cnt = 0
for s in sorted([s for s in sords if s.throw > maxhit.hit], key=lambda x:x.throw, reverse=True):
  H -= s.throw
  cnt += 1
  if H < 0:
    break
else:
  cnt += H // maxhit.hit + (H % maxhit.hit != 0)*1

print(cnt)

