#include<iostream>
#include<algorithm>
#include<vector>
struct Student
{
int num;
int grade;
Student(int n, int g)
: num(n), grade(g)
{
}
};
bool compare(const Student& a, const Student& b)
{
if(a.grade < b.grade)
{
return true;
}else if(a.grade > b.grade)
{
return false;
}
return a.num < b.num;
}
int main()
{
int n;
std::cin >> n;
std::vector<Student> students;
students.reserve(n);//预先指定要分配的内存数量
for(int i = 0;i < n;i++)
{
int p,q;
std::cin >> p >> q;
students.emplace_back(p, q);//直接传递参数,利用构造函数,而不是传递对象,避免复制加快执行速度
}
std::sort(students.begin(), students.end(), compare);
for(Student student : students)
{
std::cout << student.num << " " << student.grade << "\n";
}
}