import Control.Monad
import Data.List
import qualified Data.ByteString.Char8 as BS
main=do
 [n,h]<-map read.words<$>getLine
 ab<-replicateM n (map (read.BS.unpack).BS.words<$>BS.getLine)
 print(f ((reverse.sort) ab) h)
  where f ab h = g (head(head ab)) ((reverse.sort) (map last ab)) h 0
        g a b h i |h<=0 = i
                  |b==[] = i+(quot(a+h-1)a)
                  |(head b)>a = g a (tail b) (h-(head b)) (i+1)
                  |otherwise = i+(quot(a+h-1)a)