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

struct Student{
    char name[50];
    int score;
  	//用一个序号来判断学生的顺序在比较器中使用
    int seq; //序号
};

bool increase(Student s1, Student s2){
    //成绩大的往后,其他不变
    if(s1.score < s2.score){
        return true;
    }else if(s1.score == s2.score && s1.seq < s2.seq){
        return true;
    }
    return false;
}

bool decrease(Student s1, Student s2){
    //成绩大的往前,其他不变
    if(s1.score > s2.score){
        return true;
    }else if(s1.score == s2.score && s1.seq < s2.seq){
        return true;
    }
    return false;
}

int main() {
    int n;//人数
    int way;//排序的方式 0为降序 1为升序
    Student stu[10000];
    while(scanf("%d%d", &n, &way) != EOF){
        for(int i = 0; i < n; i++){
            stu[i].seq = i;
            scanf("%s %d", stu[i].name, &stu[i].score);
        }

        if(1 == way){
            sort(stu, stu + n, increase);
        }else{
            sort(stu, stu + n, decrease);
        }
        for(int i = 0; i < n; i++){
            printf("%s %d\n", stu[i].name, stu[i].score);
        }
    }

}