
n,h=gets.chomp.split(" ").map { |e| e.to_i  }
a=Array.new(n)

n.times do |i|
  x,y = gets.chomp.split(" ").map { |e| e.to_i }
  a[i] = {"a" => x,"b" => y}
end

count = 0

def quick_sort_hash(c,x)
  if c==[]
    return []
  end
  same = c.select{ |h| h[x] == c[0][x] }
  smaller = c.select{ |h| h[x] < c[0][x] }
  larger = c.select { |h| h[x] > c[0][x] }

  return quick_sort_hash(smaller,x) + same + quick_sort_hash(larger,x)

end



a = quick_sort_hash(a,"a").reverse

max_a = a[0]

a = a.drop(1)
i=0

for x in a do
  if h > 0 && x["b"] > max_a["a"]
    h -= x["b"]
    count += 1
  end
end

if h <= 0
  puts count
elsif h <= max_a["b"]
  puts count + 1
else
  puts count + 1 + (h - max_a["b"] + max_a["a"] - 1)/max_a["a"]
end