#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")