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

max_a = max(l, key=lambda x: x[0])[0]

l = [[a, b] for a, b in l if b > max_a]
l.sort(key=lambda x: x[1], reverse=True)
n = len(l)

c = 0
for i in range(n - 1):
  a, b = l[i]
  if a == max_a and l[i + 1][0] < max_a:
    l = l[i:]
    break
  h -= b
  c += 1
  if h <= 0:
    print(c)
    exit()
else:
  l = l[-1:]

last_a = l[0][0]
if l[0][1] >= h:
  print(c + 1)
else:
  for a, b in l[1:]:
    if b < last_a:
      break
    else:
      h -= b
      c += 1
      if h <= 0:
        print(c)
        exit()
  h -= l[0][1]
  c += 1
  print(c + h // last_a + (h % last_a != 0))