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;
}