#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
typedef struct{
    char name[20];
    int grade;
} kk;

int cmp1(const void*_a,const void*_b)
{
    kk *a = (kk*)_a;
    kk *b = (kk*)_b;
    return (*a).grade - (*b).grade;
}

int cmp0(const void*_a,const void*_b)
{
    kk *a = (kk*)_a;
    kk *b = (kk*)_b;
    return (*b).grade - (*a).grade;
}

int main() {
    int way = 0;
    int num = 0;
    kk data[200];
    while (~scanf("%d",&num)) {
        scanf("%d",&way);
        for (int i = 0; i < num ; i++) {
            scanf("%s %d",data[i].name,&data[i].grade);
        }
        if(way == 1)
        qsort(data, num, sizeof(kk), cmp1);
        else if(way == 0)
        qsort(data, num, sizeof(kk), cmp0);

        for (int i = 0; i < num ; i++) {
            printf("%s %d\n",data[i].name,data[i].grade);
        }


    
    }
}