#include using namespace std; #define rep1(a) for (int i = 0; i < (a); i++) #define rep2(i, a) for (int i = 0; i < (a); i++) #define rep3(i, a, b) for (int i = a; i < (b); i++) #define rep4(i, a, b, c) for (int i = a; i < (b); i += c) #define overload4(a, b, c, d, e, ...) e #define rep(...) overload4(__VA_ARGS__, rep4, rep3, rep2, rep1)(__VA_ARGS__) using ll = long long; constexpr ll INF = (1LL << 60); void chmax(ll& a, ll b) { a = max(a, b);} void chmin(ll& a, ll b) { a = min(a, b); } inline void YesNo(bool ok) { cout << (ok ? "Yes\n" : "No\n"); } template void input_vec(vector& v) { for (auto& x : v) cin >> x; } template void input(T&... a) { (cin >> ... >> a); } void print() { cout << '\n'; } template void print(const T& a, const Ts&... b) { cout << a; (cout << ... << (cout << ' ', b)); cout << '\n'; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, m; cin >> n >> m; map M; rep(i, n) { int a, b; cin >> a >> b; M[(m-a+b-1)/b]++; } int sum = 0; int k = 0; for (auto j : M) { sum += j.second; k = max(k, (sum+j.first-1)/j.first); } cout << k << endl; return 0; }