#include<bits/stdc++.h>
using namespace std;
typedef long long lt;
const int N = 1e5 + 10;
int n;
lt w[N], b[N], ans;
lt GCD(lt x, lt y){ return y == 0 ? x : GCD(y, x % y); }
lt lcm(lt x, lt y){ return x * y / GCD(x, y); }
lt exgcd(lt a, lt b, lt &x, lt &y){
lt gcd, tmp;
if(!b){
x = 1, y = 0;
return a;
}
gcd = exgcd(b, a%b, x, y);
tmp = x;
x = y;
y = tmp - a/b*y;
return gcd;
}
int main(){
scanf("%d", &n);
for(int i = 1; i <= n; i++)
scanf("%lld%lld", &w[i], &b[i]);
for(int i = 2; i <= n; i++){
lt d = GCD(w[i-1], w[i]);
lt p1 = w[i-1]/d, p2 = w[i]/d;
lt x, y;
exgcd(p1, p2, x, y);
lt _x = b[i-1] + (b[i] - b[i-1])/d*x*w[i-1];
b[i] = _x, w[i] = lcm(w[i], w[i-1]);
b[i] = (b[i]%w[i] + w[i]) % w[i];
printf("%d %lld\n", i, b[i]);
}
printf("%lld", (long long)b[n] % w[n]);
return 0;
}