#include <stdio.h>
#include<stdlib.h>
#include <string.h>
typedef struct {
char name[20];
int score;
}P;
P p[200];
void printP(P p){
printf("%s %d\n",p.name,p.score);
}
void StringSwap(char*s1,char*s2){
char name_temp[20];
strcpy(name_temp,s1);
strcpy(s1,s2);
strcpy(s2,name_temp);
}
void swap(P*p1,P*p2){
// int temp=p1->score;
// p1->score=p2->score;
// p2->score=temp;
// StringSwap(p1->name, p2->name);
P temp=*p1;
*p1=*p2;
*p2=temp;
}
void asc(P*p,int l,int r){
// if(l>=r) return;
// int x=p[l].score,i=l-1,j=r+1;
// while(i<j){
// do i++;while(p[i].score<x);
// do j--;while(p[j].score>x);
// if(i<j) swap(&p[i],&p[j]);
// }
// asc(p,l,j);
// asc(p,j+1,r);
if(l>=r) return;
int mid=l+r>>1;
asc(p, l, mid);
asc(p,mid+1,r);
int k=0,i=l,j=mid+1;
P temp[200];
while(i<=mid&&j<=r){
if(p[i].score<=p[j].score) {temp[k].score=p[i].score;strcpy(temp[k++].name,p[i++].name);}
else {temp[k].score=p[j].score;strcpy(temp[k++].name,p[j++].name);}
}
while (i<=mid) {temp[k].score=p[i].score;strcpy(temp[k++].name,p[i++].name);}
while(j<=r){temp[k].score=p[j].score;strcpy(temp[k++].name,p[j++].name);}
for(i=l,j=0;i<=r;i++,j++){swap(&p[i], &temp[j]);}
}
void desc(P*p,int l,int r){
// if(l>=r) return;
// int x=p[l].score,i=l-1,j=r+1;
// while(i<j){
// do i++;while(p[i].score>x);
// do j--;while(p[j].score<x);
// if(i<j) swap(&p[i],&p[j]);
// }
// desc(p,l,j);
// desc(p,j+1,r);
if(l>=r) return;
int mid=l+r>>1;
desc(p, l, mid);
desc(p,mid+1,r);
int k=0,i=l,j=mid+1;
P temp[200];
while(i<=mid&&j<=r){
if(p[i].score>=p[j].score) {temp[k].score=p[i].score;strcpy(temp[k++].name,p[i++].name);}
else {temp[k].score=p[j].score;strcpy(temp[k++].name,p[j++].name);}
}
while (i<=mid) {temp[k].score=p[i].score;strcpy(temp[k++].name,p[i++].name);}
while(j<=r){temp[k].score=p[j].score;strcpy(temp[k++].name,p[j++].name);}
for(i=l,j=0;i<=r;i++,j++){swap(&p[i], &temp[j]);}
}
int main() {
int num, flag;
while (scanf("%d %d", &num, &flag) != EOF) { // 注意 while 处理多个 case
for(int i=0;i<num;i++){
scanf("%s %d",p[i].name,&p[i].score);
}
if(flag==1)asc(p,0,num-1);
else desc(p,0,num-1);
for(int i=0;i<num;i++){
printP(p[i]);
}
}
return 0;
}