#include<bits/stdc++.h>
using namespace std;
int main(){
int k=1,mid=0,j=0;
int N,K,max,i,ans=0,t=0;
int H[100005],W[100005],T[100005];
scanf("%d %d",&N,&K);
for(int i=0;i<N;i++){
scanf("%d %d",&H[i],&W[i]);
if(H[i]>W[i]) t=W[i];
else t=H[i];
if(t>max) max=t;
}
for(int i=0;i<N;i++){
j=max;k=1;
while(k<=j){
mid=(k+j)/2;
if(H[i]/mid==0||W[i]/mid==0){
j=mid-1;
}
else {
k=mid+1;
T[i]=mid;
}
}
}
sort(T,T+N);
j=T[N-1];k=1;
while(k<=j){
mid=(j+k)/2;
for(int i=0;i<N;i++){
t+=(H[i]/mid)*(W[i]/mid);
}
if(t>=K){
k=mid+1;
ans=mid;
}
else j=mid-1;
t=0;
}
cout<<ans<<endl;
}