#include <bits/stdc++.h>
using namespace std;
#define M 100005
struct ps
{
long long tu, mau;
};
ps a[M];
int n;
void rutgon(ps &x)
{
if(x.mau<0)
{
x.mau = -x.mau;
x.tu = -x.tu;
}
long long tam = __gcd(x.tu, x.mau);
x.tu/=tam, x.mau/=tam;
}
bool cmp(ps x, ps y)
{
return x.tu * y.mau < x.mau * y.tu;
}
int main()
{
cin >> n;
for(int i = 0; i < n; i++)
{
cin >> a[i].tu >> a[i].mau;
rutgon(a[i]);
}
sort(a, a + n, cmp);
for(int i = 0; i < n; i++)
cout << a[i].tu << ' ' << a[i].mau << '\n';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgTSAxMDAwMDUKCnN0cnVjdCBwcwp7CiAgICBsb25nIGxvbmcgdHUsIG1hdTsKfTsKCnBzIGFbTV07CmludCBuOwoKdm9pZCBydXRnb24ocHMgJngpCnsKICAgIGlmKHgubWF1PDApCiAgICB7CiAgICAgICAgeC5tYXUgPSAteC5tYXU7CiAgICAgICAgeC50dSA9IC14LnR1OwogICAgfQogICAgbG9uZyBsb25nIHRhbSA9IF9fZ2NkKHgudHUsIHgubWF1KTsKICAgIHgudHUvPXRhbSwgeC5tYXUvPXRhbTsKfQoKYm9vbCBjbXAocHMgeCwgcHMgeSkKewogICAgcmV0dXJuIHgudHUgKiB5Lm1hdSA8IHgubWF1ICogeS50dTsKfQoKaW50IG1haW4oKQp7CiAgICBjaW4gPj4gbjsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICB7CiAgICAgICAgY2luID4+IGFbaV0udHUgPj4gYVtpXS5tYXU7CiAgICAgICAgcnV0Z29uKGFbaV0pOwogICAgfQogICAgc29ydChhLCBhICsgbiwgY21wKTsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICAgICAgY291dCA8PCBhW2ldLnR1IDw8ICcgJyA8PCBhW2ldLm1hdSA8PCAnXG4nOwp9Cg==