#include <iostream>
#include <fstream>
#include <cmath>
#define INF 2000
#define MAXP 1005
#define MIJ 500
using namespace std;
ifstream si("aliens.in");
ofstream so("aliens.out");
int v[MAXP][MAXP];
int rez[600];
int p[3];
int desc(int x,int p)
{
int r=0;
while(x%p==0)
{
r++;
x/=p;
}
return r;
}
inline void inmult(int x[],int a)
{
int i,r=0;
for(i=1;i<=x[0]||r;++i)
{
x[i]=x[i]*a+r;
r=x[i]/10;
x[i]%=10;
}
x[0]=i-1;
}
int main()
{
int n;
si>>n;
for(int i=0;i<MAXP;++i)
for(int j=0;j<MAXP;++j)
v[i][j]=-INF;
int s3,f3,d3;
int s5,f5,d5;
v[MIJ][MIJ]=0;
int x,y;
int min3,max3,min5,max5;
min3=max3=min5=max5=0;
for(int i=1;i<=n;++i)
{
si>>x>>y;
//cout<<desc(x,2)<<' '<<desc(y,2)<<'\n';
p[0]=desc(x,2)-desc(y,2);
p[1]=desc(x,3)-desc(y,3);
p[2]=desc(x,5)-desc(y,5);
if(p[1]>=0)
{
s3=max3;
f3=min3;
d3=-1;
}
else
{
s3=min3;
f3=max3;
d3=1;
}
if(p[2]>=0)
{
s5=max5;
f5=min5;
d5=-1;
}
else
{
s5=min5;
f5=max5;
d5=1;
}
for(int j=s3;j!=f3+d3;j+=d3)
{
for(int k=s5;k!=f5+d5;k+=d5)
{
if(v[j+MIJ][k+MIJ]==-INF)
continue;
if(v[MIJ+j+p[1]][MIJ+k+p[2]]<v[MIJ+j][MIJ+k]+p[0])
{
v[MIJ+j+p[1]][MIJ+k+p[2]]=v[MIJ+j][MIJ+k]+p[0];
if(j+p[1]<min3)
min3=j+p[1];
if(j+p[1]>max3)
max3=j+p[1];
if(k+p[2]<min5)
min5=k+p[2];
if(k+p[2]>max5)
max5=k+p[2];
}
}
}
}
double l2=log(2),l3=log(3),l5=log(5);
int sx,sy;
double sol=0,cur;
for(int i=0;i<=max3;++i)
{
for(int j=0;j<=max5;++j)
{
if(v[MIJ+i][MIJ+j]<0)
continue;
cur=v[MIJ+i][MIJ+j]*l2+i*l3+j*l5;
if(cur>sol)
{
sol=cur;
sx=i;
sy=j;
}
}
}
rez[0]=1;
rez[1]=1;
for(int i=1;i<=v[sx+MIJ][sy+MIJ];++i)
{
inmult(rez,2);
}
for(int i=1;i<=sx;++i)
inmult(rez,3);
for(int i=1;i<=sy;++i)
inmult(rez,5);
for(int i=rez[0];i;--i)
so<<rez[i];
return 0;
}