//排序规则黄金法则:比较函数的返回值为true时,表示的是比较函数的第一个参数将会排在第二个函数前面
#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;

struct Student{
    int number;
    int score;
};
const int MAX=110;
Student arr[MAX];

bool Compare(Student x,Student y){
    if(x.score==y.score){
        return x.number<y.number;
    }
    else{
        return x.score<y.score;
    }
}


int main() {
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        scanf("%d %d",&arr[i].number,&arr[i].score);
    }
    sort(arr,arr+n,Compare);
    for(int i=0;i<n;i++)
    printf("%d %d\n",arr[i].number,arr[i].score);
    return 0;
}