#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
const int maxn=1010;
int n,now[maxn],ans[maxn],cur[maxn];
struct node{
int a,b;
}s[maxn];
void ch(int x){
for(int i=1;i<=now[0];i++){
now[i]*=x;
}
for(int i=1;i<=now[0];i++){
if(now[i]>=10) now[i+1]+=now[i]/10;
now[i]%=10;
}
while(now[now[0]+1]) ++now[0];
}
bool cmp(node x,node y){
return x.a*x.b<y.a*y.b;
}
void div(int x){
int t=0;
for(int i=now[0];i;i--){
t=t*10+now[i];
cur[i]=t/x;
if(cur[i]!=0&&cur[0]==0){
cur[0]=i;
}
t%=x;
}
int f=false;
if(cur[0]>ans[0]){
f=true;
}
else{
if(cur[0]<ans[0]){
f=false;
return ;
}
else{
for(int j=ans[0];j>=1;j--){
if(cur[j]<ans[j]){
f=false; break;
}
if(cur[j]>ans[j]) {
f=true; break;
}
}
}
}
if(f){
for(int j=1;j<=cur[0];j++){
ans[j]=cur[j];
}
ans[0]=cur[0];
}
}
int main(){
scanf("%d",&n);
int a1,b1;
scanf("%d%d",&a1,&b1);
for(int i=1;i<=n;i++){
scanf("%d%d",&s[i].a,&s[i].b);
/*scanf("%s",s);
int len=strlen(s)
for(int j=0;j<len;j++){
a[i][len-j]=s[j]-'0';
}*/
}
sort(s+1,s+1+n,cmp);
ans[0]=1; ans[1]=1;
now[0]=1; now[1]=1;
//ch(6); div(3);
ch(a1);
/*for(int i=now[0];i;i--){
cout<<now[i];
}
cout<<endl;*/
for(int i=1;i<=n;i++){
ch(s[i].a);
div(s[i].a*s[i].b);
}
for(int j=ans[0];j>=1;j--){
printf("%d",ans[j]);
}
cout<<endl;
return 0;
}
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
const int maxn=1010;
int n,now[maxn],ans[maxn],cur[maxn];
struct node{
int a,b;
}s[maxn];
void ch(int x){
for(int i=1;i<=now[0];i++){
now[i]*=x;
}
for(int i=1;i<=now[0];i++){
if(now[i]>=10) now[i+1]+=now[i]/10;
now[i]%=10;
}
while(now[now[0]+1]) ++now[0];
}
bool cmp(node x,node y){
return x.a*x.b<y.a*y.b;
}
void div(int x){
int t=0;
for(int i=now[0];i;i--){
t=t*10+now[i];
cur[i]=t/x;
if(cur[i]!=0&&cur[0]==0){
cur[0]=i;
}
t%=x;
}
int f=false;
if(cur[0]>ans[0]){
f=true;
}
else{
if(cur[0]<ans[0]){
f=false;
return ;
}
else{
for(int j=ans[0];j>=1;j--){
if(cur[j]<ans[j]){
f=false; break;
}
if(cur[j]>ans[j]) {
f=true; break;
}
}
}
}
if(f){
for(int j=1;j<=cur[0];j++){
ans[j]=cur[j];
}
ans[0]=cur[0];
}
}
int main(){
scanf("%d",&n);
int a1,b1;
scanf("%d%d",&a1,&b1);
for(int i=1;i<=n;i++){
scanf("%d%d",&s[i].a,&s[i].b);
/*scanf("%s",s);
int len=strlen(s)
for(int j=0;j<len;j++){
a[i][len-j]=s[j]-'0';
}*/
}
sort(s+1,s+1+n,cmp);
ans[0]=1; ans[1]=1;
now[0]=1; now[1]=1;
//ch(6); div(3);
ch(a1);
/*for(int i=now[0];i;i--){
cout<<now[i];
}
cout<<endl;*/
for(int i=1;i<=n;i++){
ch(s[i].a);
div(s[i].a*s[i].b);
}
for(int j=ans[0];j>=1;j--){
printf("%d",ans[j]);
}
cout<<endl;
return 0;
}