#define ll long long int
#define M bi[i] - x * ai[i]
#define lcm ai[i] * ai[i + 1] / gcd
#include<iostream>
using namespace std;
ll n, k = 1, u0, ans, ai[50000], bi[50000];// gcd(a,b)==gcd(b,a%b)
inline ll QuickMul(ll a, ll b, ll m)
{
ll c = a * b - (ll)((long double)a * b / m) * m;
return c < 0 ? c + m : c;
}
ll exgcd(ll a, ll b, ll& x, ll& y)//x,y为c/gcd(x,y)
{
if (b == 0) { x = 1, y = 0; return a; }//b==0时结束 此时ax+by=gcd(a,b),b==0,所以就是ax=a,那么x=1,y=0 然后递归反推
ll gcd = exgcd(b, a % b, x, y);
ll tmp = x;
x = y, y = tmp - a / b * y;
return gcd;
}
ll excrt() {//扩展中国剩余定理
ll x, y, c, gcd;
for (int i = 1; i < n; i++)
{
gcd = abs(exgcd(ai[i], ai[i + 1], x, y));//x y在此为特解
c = bi[i] - bi[i + 1];
x = QuickMul(x,c/gcd,ai[i]);
//x *= ((bi[i] - bi[i + 1]) / gcd);
ll M1 = M;
while (M1 < 0) {
M1 += lcm;
}
ans = (M1) % (lcm);
bi[i + 1] = M1;
ai[i + 1] = lcm;
}
return ans;
}
int main()
{
cin >> n;
for (int i = 1; i <= n; i++)
cin >> ai[i] >> bi[i];
cout << excrt();
return 0;
}