n, h = io.read("*n", "*n")
katana = {}
amax = 0
for i = 1, n do
  a, b = io.read("*n", "*n")
  katana[i] = {}
  katana[i].a = a
  katana[i].b = b
  amax = math.max(amax, a)
end
table.sort(katana, function(x, y)
    return x.b > y.b
  end
)
cnt = 0
for i = 1, n do
  if(amax <= katana[i].b) then
    cnt, h = cnt + 1, h - katana[i].b
    if(h <= 0) then break end
  end
end
if(0 < h) then
  cnt = cnt + math.ceil(h / amax)
end
print(cnt)
