#include <iostream>
#include <queue>
#include <algorithm>
using namespace std;
struct student{
string name;
int score;
student(string n,int s):name(n),score(s){}
};
bool compare0(student s1,student s2){
return s1.score>s2.score;
}
bool compare1(student s1,student s2){
return s1.score<s2.score;
}
int main(){
vector<student> list;
string name;
int n,flag,s;
while (cin>>n>>flag){
for (int i = 0; i < n; ++i) {
cin>>name>>s;
list.push_back(student(name,s));
}
if (flag){
stable_sort(list.begin(),list.end(), compare1);
} else{
stable_sort(list.begin(),list.end(), compare0);
}
for (int i = 0; i < n; ++i) {
cout<<list[i].name<<" "<<list[i].score<<endl;
}
}
return 0;
}