#include <iostream>
#include <algorithm>
#include <string>
using namespace std;

struct Student{
    char name[100];
    int grade;
    int seq;
}arr[1000];

bool cmp0(Student a, Student b){
    if(a.grade == b.grade && a.seq < b.seq) return true;
    else if(a.grade>b.grade) return true;
    else return false;
}
bool cmp1(Student a, Student b){
    if(a.grade == b.grade  && a.seq < b.seq) return true;
    else if(a.grade<b.grade) return true;
    else return false;
}
int main() {
    int n,x;
    int seqq = 0;
    while(scanf("%d\n%d",&n,&x)!=EOF){
        for(int i=0;i<n;++i){
            scanf("%s %d",arr[i].name, &arr[i].grade);
            seqq+=1;
            arr[i].seq = seqq;
        }
        if(x==0){
        stable_sort(arr,arr+n,cmp0);
        }
        else{
            stable_sort(arr,arr+n,cmp1);
        }
        for (int i=0; i<n; ++i){
            printf("%s %d\n",arr[i].name,arr[i].grade);
        }
    }
    // for (int i=0; i<n; ++i){
    //         printf("%s %d\n",arr[i].name,arr[i].grade);
    //     }
}
// 64 位输出请用 printf("%lld")