//KY8 成绩排序
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
const int mxn=100005;
int n, op;
struct E{
    int p;
    int num;
}e[mxn];
bool cmp1(E x,E y)
{
    if(x.num==y.num) return x.p<y.p;
    return x.num<y.num;
}
int main()
{
    while(cin>>n)
    {
        for(int i=1;i<=n;i++){
            cin>>e[i].p>>e[i].num;
        }
        sort(e+1,e+n+1,cmp1);
        
        for(int i=1;i<=n;i++) cout<<e[i].p<<" "<<e[i].num<<"\n";
    }
    return 0;
}