#include<bits/stdc++.h>
using namespace std;
const int N =1e8+10;
#define int __int128
int T,a1,a2,n1,n2;
int a[N],n[N];
inline int read()
{
register int x=0,f=0;
register char t=getchar();
while(t<'0'||t>'9')f^=(t=='-'),t=getchar();
while(t>='0'&&t<='9')x=(x<<3)+(x<<1)+(t^48),t=getchar();
return f?-x:x;
}
inline void out(int x){
if(x<0)putchar('-'),x=-x;
if(x>9)out(x/10);
putchar(x%10+48);
}
void Exgcd(int a,int b,int &GCD,int &x,int &y)
{
if(b==0)
{
y=(x=1)-1;
GCD=a;
}
else
{
Exgcd(b,a%b,GCD,y,x);
y-=x/b*a;
}
}
int EXCRT()
{
a1=a[0];
n1=n[0];
for(int i=1;i<T;i++)
{
a2=a[i];
n2=n[i];
int g,x,y,C=a2-a1;
Exgcd(n1,n2,g,x,y);
if(C%g==0)
{
x=((x*C/g)%(n2/g)+(n2/g))%(n2/g);
a1=a1+x*n1;
n1=(n1*n2)/g;
}
}
return a1;
}
signed main()
{
T=read();
for(int i=0;i<T;i++)
n[i]=read(),a[i]=read();
int k=EXCRT();
out(k);
return 0;
}