#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct student{
int num;
int score;
}//定义结构体保存学号和成绩;
bool compare(student lhs,student rhs)
{
//两种情况下不交换
//一。学生成绩左小于右
//二。如果学生的成绩相同,则学号左小于右
//其余情况都交换
if (lhs.score<rhs.score)
return true;
else if (lhs.score==rhs.score&&lhs.num<rhs.num)
return true;
else return false;
}
int main() {
int n;
cin>>n;
vector<student> vec1(n);
for (int i=0; i<n; ++i) {
cin>>vec1[i].num>>vec1[i].score;
}
sort(vec1.begin(), vec1.end(), compare);//用sort对vector进行排序
//别担心排序不稳定的问题,在compare中可以调整
for(int i=0;i<n;++i){
cout << vec1[i].num <<' '<<vec1[i].score<<endl;
}
return 0;
}