void solve()
{
int n, k;
cin >> n >> k;
int maxnum = 0;
vector<int> h(n), k = h;
for (int i = 0; i < n; i++)
{
cin >> h[i] >> k[i];
maxnum = max({maxnum, h[i], k[i]});
}
int l = 1, r = maxnum, m, ans;
while (l <= r)
{
m = l + (r - l) / 2;
auto check = [&]()
{
int ans = 0;
for (int i = 0; i < n; i++)
{
ans += (h[i] / m) * (k[i] / m);
}
return ans >= k;
};
if (check()) l = (ans = mid) + 1;
else r = m - 1;
}
cout << ans;
}