#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
typedef long long ll;
const int N = 1e5 + 100;
ll n;
ll r[N], m[N];
ll mul (ll a, ll b, ll mod)
{
ll res = 0;
while (b)
{
if (b & 1) res = (res + a) % mod;
b >>= 1; a = (a + a) % mod;
}
return res;
}
ll exgcd (ll a, ll b, ll &x, ll &y)
{
if (b == 0) {x = 1, y = 0; return a;}
ll d = exgcd (b, a % b, y, x);
y -= a / b * x;
return d;
}
ll excrt ()
{
for (int i = 2; i <= n; i ++ )
{
ll r1 = r[i - 1], m1 = m[i - 1], r2 = r[i], m2 = m[i];
ll x, y;
ll d = exgcd (m1, m2, x, y);
ll lcm = m1 / d * m2 ;
ll mod = m2 / d;
ll k = (mul(x, abs(r1 - r2) / d, mod) + mod) % mod;
ll nr = (mul (k, m1, lcm) + r1) % lcm;
r[i] = nr, m[i] = lcm;
}
return r[n];
}
int main ()
{
cin >> n;
for (int i = 1; i <= n; i ++ ) cin >> m[i] >> r[i];
cout << excrt () << endl;
return 0;
}