#include <stdio.h>
#include <string.h>
#include <math.h>
const int MAXN = 51;
const int MAXlog3 = 18;
const int MAXlog5 = 12;
const int MAXV3 = MAXN * MAXlog3;
const int MAXV5 = MAXN * MAXlog5;
int N;
short x[MAXN], y[MAXN], z[MAXN];
short bst[MAXV3 * 2][MAXV5 * 2];
#define bst( i, j ) bst[ (i) + MAXV3 ][ (j) + MAXV5 ]
int rez[512];
inline void mul( int A[512], int B )
{
int i, t = 0;
for (i = 1; i <= A[0] || t; i++, t /= 10)
A[i] = (t += A[i] * B) % 10;
A[0] = i - 1;
}
inline void print( int A[512] )
{
for (int i = A[0]; i; i--)
printf("%d", A[i]);
printf("\n");
}
int main()
{
freopen("aliens.in", "rt", stdin);
freopen("aliens.out", "wt", stdout);
scanf("%d", &N);
for (int i = 0; i < N; i++)
{
int A, B;
scanf("%d %d", &A, &B);
for (; A % 2 == 0; A /= 2) x[i]++;
for (; A % 3 == 0; A /= 3) y[i]++;
for (; A % 5 == 0; A /= 5) z[i]++;
for (; B % 2 == 0; B /= 2) x[i]--;
for (; B % 3 == 0; B /= 3) y[i]--;
for (; B % 5 == 0; B /= 5) z[i]--;
}
for (int j = -N * MAXlog3; j <= N * MAXlog3; j++)
for (int k = -N * MAXlog5; k <= N * MAXlog5; k++)
bst(j, k) = -32000;
bst(0, 0) = 0;
int MIN3 = 0, MAX3 = 0, MIN5 = 0, MAX5 = 0;
for (int i = 0; i < N; i++)
{
int jL, jR, jD;
if (y[i] >= 0)
jL = MAX3, jR = MIN3, jD = -1;
else
jL = MIN3, jR = MAX3, jD = 1;
int kL, kR, kD;
if (z[i] >= 0)
kL = MAX5, kR = MIN5, kD = -1;
else
kL = MIN5, kR = MAX5, kD = 1;
for (int j = jL; j != jR + jD; j += jD)
for (int k = kL; k != kR + kD; k += kD)
{
if (bst(j, k) == -32000)
continue;
if (bst(j, k) + x[i] > bst(j + y[i], k + z[i]))
{
bst(j + y[i], k + z[i]) = bst(j, k) + x[i];
if (j + y[i] > MAX3) MAX3 = j + y[i];
if (j + y[i] < MIN3) MIN3 = j + y[i];
if (k + z[i] > MAX5) MAX5 = k + z[i];
if (k + z[i] < MIN5) MIN5 = k + z[i];
}
}
}
double MAX = -1; int MAXx = -1, MAXy = -1, MAXz = -1;
for (int Y = 0; Y <= MAX3; Y++)
for (int Z = 0; Z <= MAX5; Z++)
{
int X = bst(Y, Z);
if (X < 0) continue;
double val = log(2) * X + log(3) * Y + log(5) * Z;
if (val > MAX)
MAX = val,
MAXx = X,
MAXy = Y,
MAXz = Z;
}
rez[ rez[0] = 1 ] = 1;
for (; MAXx; MAXx--) mul(rez, 2);
for (; MAXy; MAXy--) mul(rez, 3);
for (; MAXz; MAXz--) mul(rez, 5);
print(rez);
return 0;
}