while True:
    try:
        num=int(input())
        m=int(input())
        table=[]
        for each in range(num):
            tableLine=input().split(' ')
            name,score=tableLine[0],int(tableLine[1])
            table.append((name,score))
        if m==0:
            newTable=sorted(table,key=lambda x:x[1],reverse=True)
        else:
            newTable=sorted(table,key=lambda x:x[1])
        for each in newTable:
            print(each[0]+' '+str(each[1]))
    except:
        break
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main(){
    int num,n,score;
    string name;
    while(cin >> num >> n){
        vector<string> b[101];
        for(int i=0;i<num;i++){
            cin >> name >> score;
            b[score].push_back(name);
        }
        if(n==0){
            for(int i=100;i>=0;i--){
                for(int j=0;j<b[i].size();j++)
                    cout << b[i][j] << " " << i << endl;
            }
        }
        else{
            for(int i=0;i<101;i++){
                for(int j=0;j<b[i].size();j++)
                    cout << b[i][j] << " " << i << endl;
            }
        }
    }
    return 0;
}