80 fen
#include<bits/stdc++.h>
using namespace std;
const int N=1e3+5,M=1e4+5;
using LL=long long;
int n;
struct node{
LL left,right;
}a[N];
struct number{
short num[M]; int k;
void clean(){memset(num,0,sizeof(num)); k=0;}
void out(){
if(k==0){putchar('0');return;}
int tk=k+1;
while(--tk) putchar('0'+num[tk]);
}
};
bool cmp(node x,node y){return x.left*x.right<y.left*y.right;}
bool max(number x,number y){
if(x.k<y.k) return false;
if(x.k>y.k) return true;
for(int i=x.k;i>=1;i--)
if(x.num[i]<y.num[i]) return false;
else if(x.num[i]>y.num[i]) return true;
return false;
}
number turn(LL x){
number ans;
ans.clean();
while(x){
ans.num[++ans.k]=x%10;
x/=10;
}
return ans;
}
number chen_fa(number x,LL y){
number ans; ans.clean();
int tk=x.k+turn(y).k+1; ans.k=tk;
for(int i=1;i<=tk;i++)
ans.num[i]=x.num[i]*y;
for (int i=1;i<=tk;i++){
ans.num[i+1]+=ans.num[i]/10;
ans.num[i]%=10;
}
while(ans.num[ans.k]==0&&ans.k) ans.k--;
return ans;
}
number chu_fa(number x,LL y){
number ans; ans.clean();
int tk=x.k; ans.k=tk; LL tc=0;
for(int i=tk;i>=1;i--){
tc*=10; tc+=x.num[i];
if(tc>=y) ans.num[i]=tc/y,tc%=y;
}
while(ans.num[ans.k]==0&&ans.k) ans.k--;
return ans;
}
number sum,ans;
int main(){
cin>>n;
for(int i=0;i<=n;i++) cin>>a[i].left>>a[i].right;
sort(a+1,a+n+1,cmp);
sum=turn(a[0].left);
for(int i=1;i<=n;i++){
if(a[i].right==0) continue;
number t=chu_fa(sum,a[i].right);
if(max(t,ans)) ans=t;
sum=chen_fa(sum,a[i].left);
}
ans.out();
}