#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
bool sor_col(const vector<int> &v1, const vector<int> &v2){
if(v1[0]>v2[0]) return true;
if(v1[0]<v2[0]) return false;
return v1[1]<v2[1];
}
int main(){
int n,x,y;
cin>>n;
vector<vector<int>> v(n);
for(int i=0;i<n;i++){
cin>>x>>y;
v[i].push_back(x);
v[i].push_back(y);
}
sort(v.begin(),v.end(),sor_col);
for (const auto& vec: v)
{
for (const auto& integer: vec)
cout << integer << ' ';
cout << endl;
}
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHZlY3Rvcj4KI2luY2x1ZGU8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpib29sIHNvcl9jb2woY29uc3QgdmVjdG9yPGludD4gJnYxLCBjb25zdCB2ZWN0b3I8aW50PiAmdjIpewogICAgaWYodjFbMF0+djJbMF0pIHJldHVybiB0cnVlOwogICAgaWYodjFbMF08djJbMF0pIHJldHVybiBmYWxzZTsKICAgIHJldHVybiB2MVsxXTx2MlsxXTsKfQoKaW50IG1haW4oKXsKICAgIGludCBuLHgseTsKICAgIGNpbj4+bjsKICAgIHZlY3Rvcjx2ZWN0b3I8aW50Pj4gdihuKTsKICAgIGZvcihpbnQgaT0wO2k8bjtpKyspewogICAgICAgIGNpbj4+eD4+eTsKICAgICAgICB2W2ldLnB1c2hfYmFjayh4KTsKICAgICAgICB2W2ldLnB1c2hfYmFjayh5KTsKICAgIH0KICAgIHNvcnQodi5iZWdpbigpLHYuZW5kKCksc29yX2NvbCk7CiAgICBmb3IgKGNvbnN0IGF1dG8mIHZlYzogdikKICAgIHsKICAgIAlmb3IgKGNvbnN0IGF1dG8mIGludGVnZXI6IHZlYykKICAgIAkJY291dCA8PCBpbnRlZ2VyIDw8ICcgJzsKICAgIAljb3V0IDw8IGVuZGw7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==