#include <cstdio>
#include <algorithm>
using namespace std;
struct Student{
char name[50];
int grade;
int seq;
};
bool comp1(Student lsh,Student rsh){
if (lsh.grade<rsh.grade){
return true;
} else if(lsh.grade==rsh.grade && lsh.seq < rsh.seq){
return true;
}
else{
return false;
}
}
bool comp0(Student lsh,Student rsh){
if (lsh.grade>rsh.grade){
return true;
} else if(lsh.grade==rsh.grade && lsh.seq < rsh.seq){
return true;
}else{
return false;
}
}
int main(){
int N;
int order;
Student arr[100];
while (scanf("%d%d",&N,&order)!=EOF){
int seq=0;
for (int i = 0; i < N; ++i) {
scanf("%s%d",arr[i].name,&arr[i].grade);//name是一个字符,字符自动是地址。
arr[i].seq=seq;
++seq;
}
if (order==0){
sort(arr,arr+N, comp0);
} else if(order==1){
sort(arr,arr+N, comp1);
} else{
return -1;
}
for (int i = 0; i < N; ++i) {
printf("%s %d\n",arr[i].name,arr[i].grade);
}
}
}