#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1e5 + 10;
struct P{
string name;
int score;
} stu[N];
bool cmp_up(P p1, P p2){
return p1.score < p2.score;
}
bool cmp_down(P p1, P p2){
return p1.score > p2.score;
}
int main() {
int n;
int flag;
while(cin >> n){
cin >> flag;
for(int i = 0; i < n; i ++){
cin >> stu[i].name >> stu[i].score;
}
//重点:sort是不稳定排序,stable_sort才是稳定排序
if(flag == 0) stable_sort(stu, stu + n, cmp_down);
else stable_sort(stu, stu + n, cmp_up);
for(int i = 0; i < n; i ++)
cout << stu[i].name <<" "<<stu[i].score << endl;
}
return 0;
}
// 64 位输出请用 printf("%lld")