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