#include #include #include using namespace std; int main() { int n, m; cin >> n >> m; vector a(n), b(n); for (int i = 0; i < n; ++i) cin >> a[i] >> b[i]; vector d(n); for (int i = 0; i < n; ++i) d[i] = (m - a[i]) / b[i]; sort(d.begin(), d.end()); int l = 0, r = n + 1; while (r - l > 1) { int mid = (l + r) / 2, flag = 1; for (int i = 0; i * mid < n; ++i) { for (int j = 0; j < mid; ++j) { if (i * mid + j >= n) break; if (d[i * mid + j] < i) { flag = 0; } } } (flag ? r : l) = mid; } cout << r << endl; }