#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct student{
string name;
int grade;
int order;
};
int main() {
int n,method;
while(cin>>n>>method){
vector<student> students;
int order=1;
for(int i=0;i<n;i++){
student temp;
cin>>temp.name>>temp.grade;
temp.order=order;
students.push_back(temp);
order++;
}
sort(students.begin(), students.end(), [method](const student &a, const student &b) {
if (a.grade != b.grade) {
return (method == 0) ? (a.grade > b.grade) : (a.grade < b.grade);
}
// 成绩相同,永远保持输入顺序(升序)
return a.order < b.order;
});
for(int i=0;i<students.size();i++){
cout<<students[i].name<<" "<<students[i].grade<<endl;
}
}
return 0;
}