#include<iostream>
using namespace std;
int number;
long long answer;
long long n[20],a[20];
long long m[20];
long long inv[20];
long long y;//临时变量
long long time_=1;
long long c[20];
void exgcd(long long a,long long b,long long &x,long long &y){
if(b==0){
x=1;
y=0;
return;
}
exgcd(b,a%b,y,x);
y-=(a/b*x);
}
int main(){
inv[1]=inv[0]=1;
cin>>number;
for(int i=1;i<=number;i++){
cin>>n[i]>>a[i];
time_*=n[i];//模数的积
}
for(int i=1;i<=number;i++){
m[i]=(time_/n[i]);
y=0;//临时变量,习惯这样打扩欧了。
exgcd(m[i],n[i],inv[i],y);//计算逆元
c[i]=m[i]*inv[i];
answer+=(a[i]*c[i]%time_);//答案计算
}
answer%=time_;//答案计算
cout<<answer<<endl;
}