import sys
import math
 
stdin = sys.stdin
 
ni = lambda: int(ns())
na = lambda: list(map(int, stdin.readline().split()))
ns = lambda: stdin.readline()

N, H = na()
atk = []
maxShake = 0

for n in range(N):
  shake, throw = na()
  if(shake > maxShake):
    maxShake = shake
  atk.append((shake, throw))

atk = list(filter(lambda x:x[1] > maxShake, atk))
atk.sort(key=lambda x:x[1])
atk.reverse()

throwSum = 0
count = 0
found = False

for shake, throw in atk:
  count = count + 1
  throwSum = throwSum + throw
  if (throwSum > H):
    print(count)
    found = True
    break

if(not found):
  print(count + math.ceil((H-throwSum) / maxShake))