N, h = gets.chomp.split(" ").map(&:to_i)
point = Array.new(N).map{Array.new(2)}
count = 0
an, bn = [], []

for i in 0..N - 1 do
  point[i][0], point[i][1] = gets.chomp.split(" ").map(&:to_i)
  an << point[i][0]
  bn << point[i][1]
end

aMax = an.max
for j in 0..N - 1 do
  bMax = bn.max
  if aMax < bMax
    h -= bMax
    bn.delete(bMax)
    count += 1
  end
  if h <= 0
    puts count
    exit
  end
end
count += (h.quo(aMax).to_f.ceil)
puts count
