#include<cstdio>
#include<cstring>
#include<algorithm>
#include<string>
#include<cmath>
#include<iostream>
#include<vector>
#include<set>
using namespace std;
typedef long long LL;
const int N=1e5+10,mod=1e6;
const int MAX = 1e8 + 10 ;
/*sort 和 struct 的结合*/
struct s{
int order ;
int grade ;
};
bool cmp(const s a , const s b){
if(a.grade == b.grade){
return a.order < b.order ;
}else {
return a.grade < b.grade ;
}
}
int main(){
int n ;
while(cin >> n){
s a[110] ;
for(int i = 1 ; i <= n ; i++){
cin >> a[i].order >> a[i].grade ;
}
sort(a + 1 , a + n + 1 , cmp) ;
for(int i = 1 ; i <= n ; i++){
cout << a[i].order << ' ' << a[i].grade <<endl;
}
}
}