rt
//problem:
//date: 2023.11.10-14:35
#include <bits/stdc++.h>
#define int __int128
#define FH signed
using namespace std;
int exgcd(int a, int b, int& x, int& y)
{
if(!b)
{
x = 1, y = 0;
return a;
}
int d = exgcd(b, a % b, y, x);
y -= a / b * x;
return d;
}
int inv(int a, int b)
{
int x, y;
exgcd(a, b, x, y);
return (x % b + b) % b;
}
int mul(int a, int b, int mod)
{
int res = 0, f = 1;
// cout << a << " " << b << "~\n";
if(b < 0) f = -1, b = -b;
while(b)
{
if(b & 1) res = (res + a) % mod;
a = (a + a) % mod;
b >>= 1;
// if(~b) cout << b << "\n";
}
return res * f;
}
int read()
{
int f=1,x=0;
char ss=getchar();
while(ss<'0'||ss>'9'){if(ss=='-')f=-1;ss=getchar();}
while(ss>='0'&&ss<='9'){x=x*10+ss-'0';ss=getchar();}
return f*x;
}
FH main()
{
int n;
n = read();
int c1, c2, m1, m2, c, m;
m1 = read(), c1 = read();
for(int i = 2; i <= n; i ++)
{
m2 = read(), c2 = read();
int d = __gcd(m1, m2);
if((c2 - c1) % d != 0)
{
cout << -1;
return 0;
}
m = (m1 * m2) / d;
c = (inv(m1 / d, m2 / d) * (c2 - c1) / d) % (m2 / d) * m1 + c1;
c = (c % m + m) % m;
c1 = c, m1 = m;
}
cout << (long long)c << "\n";
return 0;
}