#include #include #include #include #include #include #include #include #include #include #include #include #include #include #define rep(i, n) for(i = 0; i < n; i++) #define int long long using namespace std; using namespace atcoder; using mint = modint998244353; signed main() { int n, m; cin >> n >> m; int i; vector a(n), b(n); rep(i, n) { scanf("%lld%lld", &a[i], &b[i]); } vector f(n + 1); //f(x): a[i] + x * b[i] > Mを満たすiの個数 rep(i, n) { int c = ((m + 1 - a[i]) + b[i] - 1) / b[i]; if (c <= n) f[c]++; } rep(i, n) f[i + 1] += f[i]; int ans = 0; for (i = 1; i <= n; i++) { int res = (f[i] + i - 1) / i; ans = max(ans, res); } cout << ans << endl; return 0; }