// #include<bits/stdc++.h>
#include <cstdio>
#include <ios>
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
struct stu_info
{
char name[90];
int score;
int original_index;
};
bool decrease(stu_info a, stu_info b)
{
if(a.score !=b.score)
{
return a.score >b.score;
}
else {
return a.original_index<b.original_index;
}
}
bool increase(stu_info a, stu_info b)
{
if(a.score !=b.score)
{
return a.score < b.score;
}
else {
return a.original_index<b.original_index;
}
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
vector<stu_info>stu_list(n);
int order;
scanf("%d",&order);
for(int i=0;i<n;i++)
{
scanf("%s %d",stu_list[i].name,&stu_list[i].score);
stu_list[i].original_index=i;
}
if(order==0)
{
sort(stu_list.begin(),stu_list.end(), decrease);
}
if(order==1)
{
sort(stu_list.begin(),stu_list.end(), increase);
}
for(auto iter =stu_list.begin();iter!=stu_list.end();iter++)
{
printf("%s %d\n",(*iter).name,(*iter).score);
}
}
}