import Control.Monad
import Control.Applicative
import Data.List

solve :: ([Int],[Int]) -> Int -> Int
solve (al,bl) h =
  solve' maxal bl' h 
  where
    maxal = maximum al
    bl' = (filter (>maxal) . sortBy (flip compare)) bl

solve' a b h 
  | h < 0 = 0
  | null b = div h a + if (mod h a) == 0 then 0 else 1
  | otherwise =
    1 + solve' a (tail b) (h - head b)

main ::IO()
main = do
  [n,h] <- map read . words <$> getLine :: IO [Int]
  l <- replicateM n $ (\(x:y:[]) -> (read x, read y)) . words <$> getLine ::IO [(Int,Int)]
  print $ solve (unzip l) h
