#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<fstream>
#include<map>
#include<ctime>
#include<set>
#include<queue>
#include<cmath>
#include<vector>
#include<bitset>
#include<functional>
#define x first
#define y second
#define mp make_pair
#define pb push_back
#define REP(i,l,r) for((i)=(l);(i)<=(r);++(i))
#define REP2(i,l,r) for((i)=(l);(i)!=(r);++(i))
using namespace std;
typedef long long LL;
typedef double ld;
const int MAX=1000+10;
int n;
int a[MAX],b[MAX];
LL extend_gcd(LL a,LL b,LL& nx,LL& ny)
{
if(!b)
{
nx=(a>0?1:-1);
ny=0;
return a;
}
LL tx,ty;
LL d=extend_gcd(b,a%b,tx,ty);
nx=ty;
ny=tx-(a/b)*ty;
return d;
}
void Merge(LL a1,LL b1,LL a2,LL b2,LL& x,LL& y,LL& z)
{
LL B=__gcd(b1,b2);
b1/=B;
b2/=B;
LL tx,ty;
z=extend_gcd(b1,b2,tx,ty)*B;
x=a1*tx+a2*ty;
y=a1*b2-a2*b1;
}
void Merge(LL& x,LL& z,LL& y,LL nx,LL ny)
{
LL tx,tz,ty;
Merge(x,z,nx,ny,tx,ty,tz);
LL g=__gcd(y,ty);
x=tx;
z=tz;
y=g;
}
int main()
{
// freopen("input.txt","r",stdin);freopen("output.txt","w",stdout);
int i;
scanf("%d",&n);
REP(i,1,n)
scanf("%d%d",&a[i],&b[i]);
LL x,y,z;
Merge(a[1],b[1],a[2],b[2],x,y,z);
REP(i,3,n)
Merge(x,z,y,a[i],b[i]);
while(x<-10000)
x+=abs(y);
while(x>10000)
x-=abs(y);
cout<<x<<" "<<z<<endl;
cout<<y<<" "<<0<<endl;
return 0;
}
I2luY2x1ZGU8Y3N0ZGlvPgojaW5jbHVkZTxjc3RkbGliPgojaW5jbHVkZTxjc3RyaW5nPgojaW5jbHVkZTxhbGdvcml0aG0+CiNpbmNsdWRlPGlvc3RyZWFtPgojaW5jbHVkZTxmc3RyZWFtPgojaW5jbHVkZTxtYXA+CiNpbmNsdWRlPGN0aW1lPgojaW5jbHVkZTxzZXQ+CiNpbmNsdWRlPHF1ZXVlPgojaW5jbHVkZTxjbWF0aD4KI2luY2x1ZGU8dmVjdG9yPgojaW5jbHVkZTxiaXRzZXQ+CiNpbmNsdWRlPGZ1bmN0aW9uYWw+CiNkZWZpbmUgeCBmaXJzdAojZGVmaW5lIHkgc2Vjb25kCiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgUkVQKGksbCxyKSBmb3IoKGkpPShsKTsoaSk8PShyKTsrKyhpKSkKI2RlZmluZSBSRVAyKGksbCxyKSBmb3IoKGkpPShsKTsoaSkhPShyKTsrKyhpKSkKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnR5cGVkZWYgbG9uZyBsb25nIExMOwp0eXBlZGVmIGRvdWJsZSBsZDsKCmNvbnN0IGludCBNQVg9MTAwMCsxMDsKCmludCBuOwppbnQgYVtNQVhdLGJbTUFYXTsKCkxMIGV4dGVuZF9nY2QoTEwgYSxMTCBiLExMJiBueCxMTCYgbnkpCnsKCWlmKCFiKQoJewoJCW54PShhPjA/MTotMSk7CgkJbnk9MDsKCQlyZXR1cm4gYTsKCX0KCUxMIHR4LHR5OwoJTEwgZD1leHRlbmRfZ2NkKGIsYSViLHR4LHR5KTsKCW54PXR5OwoJbnk9dHgtKGEvYikqdHk7CglyZXR1cm4gZDsKfQoKdm9pZCBNZXJnZShMTCBhMSxMTCBiMSxMTCBhMixMTCBiMixMTCYgeCxMTCYgeSxMTCYgeikKewoJTEwgQj1fX2djZChiMSxiMik7CgliMS89QjsKCWIyLz1COwoKCUxMIHR4LHR5OwoJej1leHRlbmRfZ2NkKGIxLGIyLHR4LHR5KSpCOwoJeD1hMSp0eCthMip0eTsKCXk9YTEqYjItYTIqYjE7Cn0KCnZvaWQgTWVyZ2UoTEwmIHgsTEwmIHosTEwmIHksTEwgbngsTEwgbnkpCnsKCUxMIHR4LHR6LHR5OwoJTWVyZ2UoeCx6LG54LG55LHR4LHR5LHR6KTsKCUxMIGc9X19nY2QoeSx0eSk7Cgl4PXR4OwoJej10ejsKCXk9ZzsKfQoKaW50IG1haW4oKQp7Ci8vCWZyZW9wZW4oImlucHV0LnR4dCIsInIiLHN0ZGluKTtmcmVvcGVuKCJvdXRwdXQudHh0IiwidyIsc3Rkb3V0KTsKCWludCBpOwoJc2NhbmYoIiVkIiwmbik7CglSRVAoaSwxLG4pCgkJc2NhbmYoIiVkJWQiLCZhW2ldLCZiW2ldKTsKCUxMIHgseSx6OwoJTWVyZ2UoYVsxXSxiWzFdLGFbMl0sYlsyXSx4LHkseik7CglSRVAoaSwzLG4pCgkJTWVyZ2UoeCx6LHksYVtpXSxiW2ldKTsKCXdoaWxlKHg8LTEwMDAwKQoJCXgrPWFicyh5KTsKCXdoaWxlKHg+MTAwMDApCgkJeC09YWJzKHkpOwoJY291dDw8eDw8IiAiPDx6PDxlbmRsOwoJY291dDw8eTw8IiAiPDwwPDxlbmRsOwoJcmV0dXJuIDA7Cn0K