N,H=gets.split.map(&:to_i)
as,bs=N.times.map{gets.split.map(&:to_i)}.transpose
as_max=as.max
bs.delete_if{|e|e<=as.max}
bs.sort!
bs.reverse!
damage=0
attack=0
bs.each do |e|
  attack+=1
  damage+=e
  if H<=damage
    puts attack
    exit
  end
end
attack+=((H-damage)/as_max.to_f).ceil
puts attack