#include<iostream>
#include<cstdio>
using namespace std;
long long ksc(long long a, long long b, long long p)
{
if(b == 0) return 0;
long long z = ksc(a, b / 2 , p);
z = (z + z) % p;
if(b % 2 != 0)
{
z = (z + a) % p;
}
return z;
}
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 xp, yp;
long long g = Exgcd(b, a%b, xp, yp);
x = yp;
y = xp - yp * (a / b);
return g;
}
void EXCRT(long long p1, long long p2, long long a1, long long a2, long long &p, long long &a)
{
long long k1, k2;
long long g = Exgcd(p1, p2, k1, k2);
k2 = -k2;
long long h = (a2 - a1) / g;
k1 = k1 * h;
k2 = k2 * h;
p = p1 / g * p2;
long long x = ksc(k1, p1, p) + a1%p;
a = (x % p + p) % p;
}
long long n;
long long a[111111], b[111111];
int main()
{
cin >> n;
long long i = 0;
long long u = n;
while(n--)
{
cin >> a[++i] >> b[i];
b[i] = b[i] % a[i];
}
long long k, p;
for(i = 2; i <= u; i++)
{
EXCRT(a[i], a[i-1], b[i], b[i-1], p, k);
a[i] = p;
b[i] = k;
}
cout << b[u];
return 0;
}