import numpy as np
 
N,H = map(int,input().split())
ab = np.asarray([list(map(int,input().split())) for _ in range(N)])
 

#bのうち大きなものから引いていく
#b[i]のうち、max(a)が大きければ、以降max(a)で攻撃し続ける

max_a = np.max(ab[:,0])
b_sort = np.sort(ab[:,1])[::-1] #降順

ans = 0

b_sort = b_sort[np.where(b_sort > max_a)]

#b_sortの中で大きいのから順に引いていく
for i in range(len(b_sort)):
  H -= b_sort[i]
  i += 1
  if H <= 0:
    print(i)
    exit()

#bをすべて引いてもH>0ならaで攻撃
if H % max_a == 0:
  i += H // max_a
else:
  i += H // max_a + 1

print(i)