#include <iostream>
using namespace std;
long long exgcd( long long a, long long b, long long &x, long long &y) {
if (b == 0) {
x = 1;
y = 0;
return a;
}
long long r = exgcd(b, a % b, x, y);
long long t = x;
x = y;
y = t - a / b * y;
return r;
}int n;
long long a[100001], m[100001];
long long exCRT(){
long long M=m[1],A=a[1],x,y,d;
for( long long i=2;i<=n;i++){
d=exgcd(M,m[i],x,y);
if((A-a[i])%d!=0){
return -1;
}
x=((A-a[i])/d*x%(m[i]/d)+m[i]/d)%(m[i]/d);
A-=x*M;
M=M/d*m[i];
A=(A%M+M)%M;
}
return (A%M+M)%M;
}
int main() {
cin>>n;
for(int i=1;i<=n;i++){
scanf("%lld%lld",&m[i],&a[i]);
}
cout<<exCRT();
return 0;
}