#include <bits/stdc++.h>
using namespace std;
typedef struct student{
int order;
char name[50];//姓名
int score;//成绩
}stu;
bool comp1(stu a,stu b){
if(a.score == b.score) return a.order < b.order;
return a.score>b.score;//按照学生的成绩从大到小进行排序
}
bool comp2(stu a,stu b){
if(a.score == b.score) return a.order < b.order;
return a.score<b.score;//按照学生的成绩从小到大进行排序
}
int main() {
int N;
stu a[10001];//这里写大些,不然容易越界
int number;
while (scanf("%d %d",&N,&number)!=EOF) {
for(int i=0;i<N;i++){
scanf("%s %d",a[i].name,&a[i].score);//name是字符数组,首元素即地址,不用加&
a[i].order=i;
}
if(number){sort(a,a+N,comp2);}
else sort(a, a+N, comp1);
for(int i=0;i<N;i++){
printf("%s %d\n",a[i].name,a[i].score);
}
}
}