#include<iostream>
#include<algorithm>
using namespace std;
long long n,k;
struct bian{
int h,w;
}a[100005];
long long b[100005];
int main()
{
cin>>n>>k;
for(int i=0;i<n;i++)
{
cin>>a[i].h >>a[i].w ;
b[i]=min(a[i].h ,a[i].w );
}
sort(b,b+n);
long long minbian=b[0];
long long l,r,mid;
long long sum;
l=0;
r=minbian+1;
while(l+1!=r)
{
mid=l+r>>1;
sum=0;
for(int i=0;i<n;i++)
{
sum+=(a[i].h/mid)*(a[i].w/mid);
}
if(sum>=k) l=mid;
else r=mid;
}
cout<<l;
return 0;
}