/*3
3 1
5 1
7 2*/
/*2
99982 19823
99983 92834//返回负值
2696734327*/
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
long long n,a[15],b[15],ans;
void ex_gcd(long long a,long long b,long long &x,long long &y)
{
if(!b){
x=1;
y=0;
return;
}ex_gcd(b,a%b,y,x);
y-=x*(a/b);
}
long long china() {
long long lcm=1,x,y;
for(int i=1;i<=n;i++)lcm*=b[i];
for(int i=1;i<=n;i++){
long long tp=lcm/b[i];
ex_gcd(tp,b[i],x,y);
x=(x%b[i]+b[i]%b[i]);
ans=(ans+a[i]*tp*x)%lcm;
}
return ans;
}
int main(){
scanf("%lld",&n);
for(int i=1;i<=n;i++)
{
scanf("%lld%lld",&b[i],&a[i]);
}
long long q=china();
printf("%lld",q);
return 0;
}