/*
24/3/2
分巧克力
二分
题意:有n块h*w的巧克力, 要分给k个人,要求巧克力必须是方形且每个人得到的巧克力尽量大
思路: 二分答案,l = 1, r = max(n块长方形巧克力中的最长边),check()检查是否能按此方案分,能否得到大于等于k块的巧克力
*/
#include<iostream>
using namespace std;
const int N = 1e5+10;
pair<int,int>v[N]; //存放n块巧克力 的长和宽
int n,k;
bool check(int x){
int num = 0, num1 = 0, num2 = 0;//num存一共可分得的巧克力数,num1表示可分得巧克力的竖直方向的个数,num2表示水平方向的个数
for(int i = 0 ; i < n; i++){
num1 = v[i].first/x;
num2 = v[i].second/x;
num += num1*num2;
}
if(num >= k) return true;
else return false;
}
int main(){
cin >> n >> k;
int maxEdge = 0;
for(int i = 0; i < n; i++){
cin >> v[i].first >> v[i].second;
maxEdge = max(maxEdge,max(v[i].first ,v[i].second));
}
int l = 1, r = maxEdge;
while(l < r){
int mid = l + r + 1 >> 1;
if(check(mid)) l = mid;
else r = mid -1;
}
cout << l << endl;
return 0;
}