#include <iostream>
#include <bits/stdc++.h>
using namespace std;
const int N = 10010;
struct node {
int l, r;
} a[N];
int pro[N], ans[N], tmp[N];
int cmp(node ax, node by) {
return ax.r * ax.l < by.r * by.l;
}
void fuzhi(int *a, int *b) {
for (int i = 0; i < N; i++) {
a[i] = b[i];
}
}
bool bijiao(int *a, int *b) {
for (int i = N - 1; i > 0; i--) {
if (a[i] > b[i])
return 0;
if (a[i] < b[i])
return 1;
}
return 1;
}
void chengfa(int *a, int x) {
for (int i = 0; i < N; i++) {
a[i] *= x;
}
for (int i = 0; i < N; i++) {
a[i + 1] += (a[i] / 10);
a[i] %= 10;
}
}
void chufa(int *a, int *b, int num) {
memset(b, 0, sizeof(b));
int x = 0;
for (int i = N - 1; i >= 0; i--) {
x = x * 10 + a[i];
b[i] = x / num;
x %= num;
}
}
void print(int *a) {
bool flag = 0;
for (int i = N - 1; i >= 0; i--) {
if (!flag) {
if (a[i])
flag = 1;
else
continue;
}
cout << a[i];
}
}
int main() {
int n;
cin >> n;
for (int i = 0; i <= n; i++) {
cin >> a[i].l >> a[i].r;
}
sort(a + 1, a + n + 1, cmp);
pro[0] = 1;
for (int i = 0; i <= n; i++) {
chufa(pro, tmp, a[i].r);
if (bijiao(tmp, ans))
fuzhi(ans, tmp);
chengfa(pro, a[i].l);
}
print(ans);
return 0;
}