#include <bits/stdc++.h>
#define ll long long
using namespace std;
struct p{
ll l;
ll r;
}m[1001];
ll n;
ll cj[10001];
ll co[10001];
ll ans[10001];
void ti(ll x){
for(int i=1;i<=cj[0];i++)cj[i]*=x;
for(int i=1;i<=cj[0];i++){
cj[i+1]+=cj[i]/10;
cj[i]%=10;
if(i==cj[0]&&cj[i+1])cj[0]++;
}
}
void ch(ll x){
memset(co,0,sizeof(co));
ll y=0;
for(int i=cj[0];i>=1;i--){
co[i]=(y*10+cj[i])/x;
y=(y*10+cj[i])%x;
}
int len=0;
while(co[len+1])len++;
co[0]=len;
}
bool maks(){
if(co[0]>ans[0])return 1;
if(ans[0]>co[0])return 0;
for(int i=co[0];i>=1;i--){
if(co[i]>ans[i])return 1;
if(ans[i]>co[i])return 0;
}
return 0;
}
bool cmp(p a,p b){return a.l*a.r<b.l*b.r;}
int main(){
scanf("%lld",&n);
for(int i=0;i<=n;i++)
scanf("%lld%lld",&m[i].l,&m[i].r);
sort(m+1,m+n+1,cmp);
cj[0]=cj[1]=1;
for(int i=1;i<=n;i++){
ti(m[i-1].l);
ch(m[i].r);
if(maks()){
for(int j=0;j<=co[0];j++)
ans[j]=co[j];
}
}
for(int i=ans[0];i>=1;i--)cout<<ans[i];
}