import Data.List

main = do
    [n,h] <- map read . words <$> getLine :: IO[Int]
    co <- getContents
    let (a,bs) = foldl (\ (a,bs) [a',b] -> (max a a', b:bs)) (0,[]) $ map (map read) $ map words $ lines co
    let xs = foldr (\ x' all@(x:xs) -> if x' >= x then x':all else all) [a] $ sortBy (flip compare) bs
    print $ solve xs h

solve :: [Int] -> Int -> Int
solve [x] h = (h+x-1) `div` x
solve (x:xs) h = if x >= h then 1 else 1 + solve xs (h-x)
