/* -*- coding: utf-8 -*- * * 3422.cc: No.3422 Sazanka's hobby - yukicoder */ #include #include using namespace std; /* constant */ const int MAX_N = 1000000; /* typedef */ /* global variables */ int as[MAX_N], bs[MAX_N]; int ds[MAX_N]; /* subroutines */ bool check(int n, int k) { for (int i = 1; i * k < n; i++) { if (ds[i * k] <= i) return false; } return true; } /* main */ int main() { int n, m; scanf("%d%d", &n, &m); for (int i = 0; i < n; i++) scanf("%d%d", as + i, bs + i); for (int i = 0; i < n; i++) ds[i] = (m - as[i]) / bs[i] + 1; sort(ds, ds + n); int k0 = 0, k1 = n; while (k0 + 1 < k1) { int k = (k0 + k1) / 2; if (check(n, k)) k1 = k; else k0 = k; } printf("%d\n", k1); return 0; }