#include <stdio.h>
#include <stdlib.h>

typedef struct node{
    char name[16];
    int score;
}node;

void swap(node *a, node *b){
    node temp = *a;
    *a = *b;
    *b = temp;
}

int main() {
    int a, b;
    while (scanf("%d %d", &a, &b) != EOF) { // 注意 while 处理多个 case
        // 64 位输出请用 printf("%lld") to 
        node arr[a];
        for(int i=0;i<a;i++){
            scanf("%s %d", arr[i].name, &arr[i].score);
        }
        int index[a];
        for (int k=0;k<a;k++){
            index[k] = 0;
        }
        for(int i=1;i<a;i++){
            for(int j=i;j>0;j--){
                if(b == 0){  //降序
                    if (arr[j-1].score < arr[j].score){
                        swap(&arr[j], &arr[j-1]);
                    }
                }else if (b == 1) {  //升序
                    if (arr[j-1].score > arr[j].score){
                        swap(&arr[j], &arr[j-1]);
                    }
                }
            }
        }
        for(int i=0;i<a;i++){
            printf("%s %d\n", arr[i].name, arr[i].score);
        }
        // printf("%d\n", b);
    }
    return 0;
}