//不能直接用sort,因为sort排序不稳定,会改变原有纪录的顺序
#include <iostream>
#include<algorithm>
#include<vector>
using namespace std;

struct student
{
    string name;
    int score;
};

void Mysort(vector<student> &v,int flag)
{
    int index;
    if(flag==0)
    {
        for(int i=0;i<v.size();i++)
        {
            index=0;
            for(int j=0;j<v.size()-1-i;j++)
            {
                if(v[j].score<v[j+1].score)
                {
                    student s=v[j];
                    v[j]=v[j+1];
                    v[j+1]=s;
                    index=1;
                }
            }
            if(index==0)return;
        }
    }
    else {
        for(int i=0;i<v.size();i++)
        {
            index=0;
            for(int j=0;j<v.size()-1-i;j++)
            {
                if(v[j].score>v[j+1].score)
                {
                    student s=v[j];
                    v[j]=v[j+1];
                    v[j+1]=s;
                    index=1;
                }
            }
            if(index==0)return;
        }
    }
}

int main() {
    vector<student>v;
    int n;
    int flag;
    while(cin>>n>>flag)
    {
        student s;
        for(int i=0;i<n;i++)
        {
            cin>>s.name;
            cin>>s.score;
            v.push_back(s);
        }
        Mysort(v,flag);
        for(int i=0;i<v.size();i++)
        {
            cout<<v[i].name<<" "<<v[i].score<<endl;
        }
        v.clear();
    }
    return 0;
}
// 64 位输出请用 printf("%lld")