#include<bits/stdc++.h>
using namespace std;
string s;//存储左手乘积
//高精*低精
void cheng(int a) {
int t=0;
for (int i = 0; i < s.size(); i++) {
t += (s[i] - '0') * a;
s[i] = t % 10+'0';
t /= 10;
}
while (t > 0) {
s += t % 10 + '0';
t /= 10;
}
}
//高精除低精
string chu(int a) {
string s1;
int t=0;
int t1 = false;
for (int i =s. size()-1; i >=0; i--) {
t = s[i] - '0'+t*10;
if (t >= a) { s1 += t / a + '0'; t -= t / a * a; t1 = 1; }
else if(t1){ s1 += '0'; }
}
if (s1.size() == 0)s1 += '0';
return s1;
}
//比较字符串储存的数字大小
string cmp(string a, string b) {
if (a.size() != b.size())return a.size() > b.size() ? a : b;
else return a > b ? a : b;
}
//结构体用于存储大臣的左右手上的数
struct arr1 {
long long int a1, a2;
}arr[10000];
//比较大臣左手*右手的数值大小,用于sort排序
bool cmp1(arr1 a,arr1 b){
return a. a1* a.a2 < b.a2* b.a1;
}
int main() {
int n, a, b; cin >> n >> a >> b;
s += a + '0';//
string max = "0";
for (int i = 0; i < n; i++) {
cin >> arr[i].a1 >> arr[i].a2;
}
sort(arr, arr + n, cmp1);
for (int i = 0; i < n; i++) {
string s1=chu(arr[i].a2);
cheng(arr[i].a1);
max = cmp(s1, max);
}
cout << max;
}