#include<iostream>
#include<algorithm>
#define ll long long
using namespace std;
const int N = 1e6 + 10, inf = 1e9 + 10;
const ll INF = 1e18 + 10;
ll mqmul(ll x, ll y, ll mod) {
if (y < 0)return mqmul(-x, -y, mod);
if (y == 0)return 0;
if (y == 1)return x % mod;
ll rt = mqmul(x, y / 2, mod);
rt += rt; rt %= mod;
if (y % 2)rt += x, rt %= mod;
return rt;
}
void exgcd(ll a, ll b, ll& x, ll& y) {
if (b == 0) {
x = 1, y = 0;
return;
}
ll x0, y0;
exgcd(b, a % b, x0, y0);
x = y0;
y = x0 - (a / b) * y0;
return;
}
ll m[N], r[N];
int main() {
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int n;
cin >> n;
for (int i = 1; i <= n; i++)
cin >> m[i] >> r[i];
for (int i = 1; i < n; i++) {
ll a = m[i], b = -m[i + 1], c = r[i + 1] - r[i];
ll x, y, d = __gcd(a, b);
if (c % d) {
cout << -1;
return 0;
}
exgcd(a, b, x, y);
x = c / d * x;
ll p = a / d * b;
if (p < 0)p = -p;
r[i + 1] = ((((mqmul(a, x, p)) + r[i]) % p) + p) % p; m[i + 1] = p;
}
cout << r[n];
return 0;
}