#include<bits/stdc++.h>
using namespace std;
long long T;
long long a[100005],m[100005];
long long d(long long x,long long y){
return __gcd(x,y);
}
long long eular(long long n) {
long long ans=1;
for(long long i=2;i*i<=n;i++) {
if(n%i==0) {
n=n/i;
ans=ans*(i-1);
while(n%i==0) {
n=n/i;
ans=ans*i;
}
}
}
if(n>1)ans=ans*(n-1);
return ans;
}
long long mi(long long x,long long k,long long mod) {
long long ans=1,q=x;
while(k>0){
if(k%2==1)ans=ans*q%mod;
q=q*q%mod;
k=k/2;
}
return ans;
}
long long ny(long long x,long long y){
return mi(x,eular(y)-1,y);
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>T;
for(long long i=1;i<=T;i++){
cin>>m[i]>>a[i];
}
for(long long i=2;i<=T;i++){
long long a1=a[i-1],m1=m[i-1],a2=a[i],m2=m[i];
long long k=d(m1,m2);
long long t0=ny(m1/k,m2/k)%(m2/k)*(a2-a1)/k;
while(t0<0){
t0=t0+(m2/k);
}
t0=t0%(m2/k);
a2=(a1+t0*m1)%(m1*m2/k);m2=m1*m2/k;
m[i]=m2;a[i]=a2;
}
while(a[T]<0){
a[T]=a[T]+m[T];
}
cout<<a[T];
return 0;
}