#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);

        }
}
}