#include <bits/stdc++.h>
using namespace std;
const int MAXX = 1e5+5;
#define int long long
int k,n,s;
struct node{
int w,h;
}node[MAXX];
bool check(int x){
int res = 0;
for (int i = 1; i <= n; i++){
res += (node[i].h / x * node[i].w / x);
if (res >= k) return true;
}
return false;
}
int binarySearch(int l, int r){
while (l < r){
int mid = (l + r + 1 )>> 1;
if (check(mid)){
l = mid ;
}
else r = mid - 1;
}
return l;
}
signed main(){
cin >> n >> k;
for (int i = 1; i <= n; i++){
cin >> node[i].h >> node[i].w;
}
int l, r;
l = 1;
r = 100002;
cout << binarySearch(l,r) << endl;
return 0;
}