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;
}