include

include

include

include

using namespace std;

struct Node{
string name;
int score;
int index;

Node(string ns, int s, int i){
    name=ns;
    score=s;
    index=i;
}    

};

bool cmpG(Node &a,Node & b){
return a.score != b.score ? a.score > b.score : a.index < b.index;
}

bool cmpL(Node &a,Node & b){
return a.score != b.score ? a.score < b.score : a.index < b.index;
}

int main(){

string str;    
vector<string> input;
vector<Node> vec;

while(getline(cin,str)){
    input.push_back(str);
}

int n;
int flag;    
for(int i=0;i<input.size();i=i+2+n){
    n=stoi(input[i]);
    flag=stoi(input[i+1]);
    for(int j=i+2;j<i+2+n;j++){
        str=input[j];
        int i=str.find(' ');
        string name = str.substr(0,i);
        int score = stoi(str.substr(i+1));
        Node node(name,score,j);
        vec.push_back(node);
    }
    if(flag==1)
        sort(vec.begin(),vec.end(),cmpL);
    else
        sort(vec.begin(),vec.end(),cmpG);

    for(int i=0;i<vec.size();i++){
        Node node=vec[i];
        cout<<node.name<<" "<<node.score<<endl;
    }

    vec.clear();

}
return 0;

}