#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
struct Student{
char name[50];
int score;
//用一个序号来判断学生的顺序在比较器中使用
int seq; //序号
};
bool increase(Student s1, Student s2){
//成绩大的往后,其他不变
if(s1.score < s2.score){
return true;
}else if(s1.score == s2.score && s1.seq < s2.seq){
return true;
}
return false;
}
bool decrease(Student s1, Student s2){
//成绩大的往前,其他不变
if(s1.score > s2.score){
return true;
}else if(s1.score == s2.score && s1.seq < s2.seq){
return true;
}
return false;
}
int main() {
int n;//人数
int way;//排序的方式 0为降序 1为升序
Student stu[10000];
while(scanf("%d%d", &n, &way) != EOF){
for(int i = 0; i < n; i++){
stu[i].seq = i;
scanf("%s %d", stu[i].name, &stu[i].score);
}
if(1 == way){
sort(stu, stu + n, increase);
}else{
sort(stu, stu + n, decrease);
}
for(int i = 0; i < n; i++){
printf("%s %d\n", stu[i].name, stu[i].score);
}
}
}