//暴力(
#include<iostream>
#include<vector>
using namespace std;
struct RClass{
long long op=0,modop=0;
TYClass(long long o=0,long long m=0){op=o;modop=m;}
constexpr const bool right(const long long& n){
return (n%op)==modop;//==(op%modop);
}
};
int main(){
long long x=1;//解 最小值可以乱猜,说不定就过了呢(
int t;
cin>>t;
vector<RClass> c(t);
for(int z=0;z<t;++z){
long long a,b;
cin>>a>>b;
c[z]=RClass(a,b);
}
while(1){
bool flag=1;
for(size_t i=0;i<c.size();++i){
if(!c[i].right(x)){
//不正确
flag=0;
break;
}
}
if(flag){
cout<<x;
return 0;
};
++x;
}
return 0;
}