#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
//#include <unordered_map>
using namespace std;
bool cmp0(const pair<string,int> &a,const pair<string,int> &b)
{
return a.second>b.second;
}
bool cmp1(const pair<string,int> &a,const pair<string,int> &b)
{
return a.second<b.second;
}
void mysort(int n,int flag)
{
//unordered_map<string,int> res;
vector<pair<string,int>> res(n);
for(int i=0;i<n;i++)
{
cin>>res[i].first>>res[i].second;
}
if(flag==0)
{
stable_sort(res.begin(),res.end(),cmp0);
}
else if(flag==1)
{
stable_sort(res.begin(),res.end(),cmp1);
}
for(int i=0;i<n;i++)
{
cout<<res[i].first<<" "<<res[i].second<<endl;
}
}
int main()
{
int n,flag;
while(cin>>n>>flag)
{
mysort(n,flag);
}
return 0;
}