n, m = read_line.split.map(&.to_i) d = Array.new(n) do a, b = read_line.split.map(&.to_i) (m + 1 - a + b - 1) // b end.sort lo = 0 hi = 1_000_000_000 while hi - lo > 1 mid = (lo + hi) // 2 if n.times.all? { |i| d[i] > i // mid } hi = mid else lo = mid end end puts hi