#include<bits/stdc++.h>
using namespace std;
const int maxn=1e4+5;
int n;
struct node{
int l,r;
}t[maxn];
bool cmp(node a,node b)
{
return a.l/b.r<b.l/a.r;
}
int sum[maxn<<2];
int len;
void muti(int x)
{
int tmp=0;
//cout<<x<<" ";
//for(int i=len;i;i--)cout<<sum[i];cout<<endl;
for(int i=1;i<=len;i++)
{
sum[i]*=x;
sum[i]+=tmp;
tmp=sum[i]/10;
sum[i]%=10;
}
while(tmp) sum[++len]=tmp%10,tmp/=10;
//for(int i=len;i;i--)cout<<sum[i];cout<<endl;
}
int ans[maxn<<2],lena;
void cut(int x)
{
lena=len;
memset(ans,0,sizeof(ans));
int res=0;
for(int i=lena;i;i--)
{
ans[i]=(res*10+sum[i])/x;
res=(res*10+sum[i])%x;
}
while(ans[lena]==0&&lena>1) lena--;
}
int lmax;
int amax[maxn<<2];
void great(){
if(lmax<lena)
{
lmax=lena;
for(int i=1;i<=lena;i++) amax[i]=ans[i];
return;
}
if(lmax==lena)
{
for(int i=lena;i;i--)
{
if(amax[i]<ans[i])
{
for(int j=1;j<=lena;j++) amax[j]=ans[j];
return;
}
}
}
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>n;n++;
for(int i=1;i<=n;i++) cin>>t[i].l>>t[i].r;
sort(t+2,t+1+n,cmp);
sum[++len]=t[1].l;
for(int i=2;i<=n;i++)
{
cut(t[i].r);
//for(int j=len;j;j--) cout<<sum[j];cout<<" ";
//for(int j=lmax;j;j--) cout<<amax[j];cout<<endl;
great();
//cout<<lmax<<endl;
muti(t[i].l);
}
for(int i=lmax;i;i--) cout<<amax[i];
return 0;
}