#include<bits/stdc++.h>
using namespace std;
int a[1010],t[100010],m[100010];
int la,lt,lm,n;
struct P{
int a,b;
bool operator <(const P &W)const{
return a*b < W.a*W.b;
}
}p[1010];
void mul(int m[],int b,int t[]){
for (int i = 1;i <= lt;i++) t[i] = 0;
for (int i = 1;i <= lm;i++) t[i] += m[i]*b;
lm += 4;
for (int i = 1;i < lm;i++){
t[i+1] += t[i] / 10;
t[i] %=10;
}
while(t[lm] == 0&&lm > 1) lm--;
for (int i = 1;i <=lm;i++) m[i] = t[i];
}
void div(int m[],int b,int t[]){
for (int i = 1;i <= lt;i++) t[i]=0;
int r = 0;
for (int i = lm;i>=1;i--){
r = r*10 + m[i];
t[i] = r/b;
r %=b;
}
lt = lm;
while(t[lt] == 0 && lt > 1) lt--;
}
bool cmp(int a[],int t[]){
if (lt != la) return la < lt;
else {
for (int i = lt;i;i--)
if (t[i] != a[i]) return a[i]<t[i];
return false;
}
}
void upd(int a[],int t[]){
if (cmp(a,t)) {
for (int i = lt;i >=1;i--) a[i] = t[i];
la = lt;
}
}
int main(){
cin >> n;
for (int i = 0;i <= n;i++){
cin >> p[i].a >> p[i].b;
}
sort(p+1,p+n+1);
m[++lm] = p[0].a;
for (int i = 1;i <= n;i++){
div(m,p[i].b,t);
upd(a,t);
mul(m,p[i].a,t);
}
for (int i = la;i;i--) cout << a[i];
}