#include<bits/stdc++.h>
using namespace std;
long long a[100005],m[100005];
long long n,M,c,q,p,ans,t,x,y;__int128 gcd;
inline long long exgcd(long long a, long long b, long long &x, long long &y) {
if (!b) {
x = 1;
y = 0;
return a;
}
long long d = exgcd(b, a % b, x, y);
long long t = x;
x = y;
y = t - (a / b) * y;
return d;
}
long long mul(long long a,long long b,long long p) {
long long ans=0,x=a;
while(b!=0) {
if(b&1) {
ans=(ans+x)%p;
}
x=(x+x)%p;
b>>=1;
}
return (ans%p+p)%p;
}
int read() {
int x = 0, w = 1;
char ch = 0;
while (ch < '0' || ch > '9') {
if (ch == '-') w = -1;
ch = getchar();
}
while (ch >= '0' && ch <= '9') {
x = x * 10 + (ch - '0');
ch = getchar();
}
return x * w;
}
int main() {
n=read();
for(int i=1; i<=n; i++) {
m[i]=read();
a[i]=read();
}
M=m[1];
ans=a[1];
for(int i=2; i<=n; i++) {
gcd=exgcd(M,m[i],x,y);
long long o=a[i]-ans,N;
t=m[i]/gcd;
x=(x%t+t)%t;
x=(mul(x,((o/gcd)%t+t)%t,t)+t)%t;
N=M*t;
ans=(ans+mul(x,M,N)+N)%N;
M=N;
}
printf("%lld",ans);
return 0;
}