#include <bits/stdc++.h>
using i64 = long long;
using u64 = unsigned long long;
#define dbg(...) fprintf(stderr, __VA_ARGS__)
i64 exgcd(i64 a, i64 b, i64& x, i64& y) {
if (!b) {
x = 1, y = 0;
return a;
}
i64 d = exgcd(b, a%b, y, x);
y -= a/b * x;
return d;
}
void merge(i64 m1, i64 a1, i64 m2, i64 a2, i64& m, i64& a) {
i64 s, t;
i64 d = exgcd(m1, m2, s, t);
m = m1 / d * m2;
a = ((__int128)m1 * s % m * (a2 - a1) / d % m + a1) % m;
}
int main() {
int n;
scanf("%d", &n);
i64 m = 1, a = 0;
for (int i = 1; i <= n; ++i) {
int mi, ai;
scanf("%d%d", &mi, &ai);
merge(m, a, mi, ai, m, a);
}
printf("%lld\n", a);
}
rt,哪里爆 long long 了