//A1028 List Sorting P103下 部分正确 段错误 答案错误 todo
//https://pintia.cn/problem-sets/994805342720868352/problems/994805468327690240
//天勤
#include <iostream>
#include <string.h>
#include <algorithm>
#define maxSize 10000
using namespace std;
struct record{
int ID;
char name[9];
int grade;
};
bool cmp1(const record& L,const record& R){
return L.ID < R.ID;
}
bool cmp2(const record& L,const record& R){
int r = strcmp(L.name,R.name);
if(r==0){
return L.ID < R.ID;
}else{
if(r<0) return true;
else return false;
}
}
bool cmp3(const record& L,const record& R){
if(L.grade == R.grade) return L.ID<R.ID;
else return L.grade<L.grade;
}
int main(){
int cmpNo,n;
record records[maxSize];
while(cin>>n>>cmpNo){
for(int i=0;i<n;++i) cin>>records[i].ID>>records[i].name>>records[i].grade;
if(cmpNo == 1) sort(records,records+n,cmp1);
else if(cmpNo == 2) sort(records,records+n,cmp2);
else if(cmpNo == 3) sort(records,records+n,cmp3);
for(int i=0;i<n;++i){
printf("%06d %s %d\n",records[i].ID,records[i].name,records[i].grade);
}
}
return 0;
}