#include<iostream>
using namespace std;
int n, k,m,ans=0;
int h[100005], w[100005];
bool check(int mid)
{
int cnt = 0;
for (int i = 0; i <= n;i++)
{
int a = h[i] / mid;
int b = w[i] / mid;
cnt += (a * b);
}
if (cnt >= k)
{
return 1;
}
return 0;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cin >> n >> k;
for(int i=1;i<=n;i++)
{
cin >> h[i] >> w[i];
m = max(h[i], w[i]);
int l = 1, r = m, mid = 0;
while (l <= r)
{
mid = (l + r) / 2;
if (check(mid))
{
ans = mid;
l = mid + 1;
}
else
r = mid - 1;
}
}
cout << ans;
return 0;
}