#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>
using namespace std;
typedef struct Stu{
string name;
int sc;
}S;
bool cmp0(S s1,S s2)
{
return s1.sc>=s2.sc;
// return s1.name>s2.name;
}
bool cmp1(S s1,S s2)
{
return s1.sc<=s2.sc;
// return s1.name<s2.name;
}
int main() {
int n,w;
while(cin>>n)
{
cin>>w;
S s[n];
// string name;
// int sc;
for(int i=0;i<n;i++)
{
cin>>s[i].name>>s[i].sc;
}
if(w==0)
{
// sort(s,s+n,cmp0);
for(int i=0;i<n;i++)//冒泡排序(要求的是稳定的排序)
{
for(int j=0;j<n-i-1;j++)
{
if(s[j].sc<s[j+1].sc)swap(s[j],s[j+1]);
}
}
}
else
{
// sort(s,s+n,cmp1);
for(int i=0;i<n;i++)
{
for(int j=0;j<n-i-1;j++)
{
if(s[j].sc>s[j+1].sc)swap(s[j],s[j+1]);
}
}
}
for(int i=0;i<n;i++)
{
cout<<s[i].name<<" "<<s[i].sc<<endl;
}
}
}
// 64 位输出请用 printf("%lld")