#include <iostream>
using namespace std;

//正常升序
void bubble_sort01(int* score,string* name,int n){
    for(int i=0;i<n-1;i++){
        for(int j=0;j<n-1-i;j++){
            if(score[j]>score[j+1]){
                swap(score[j],score[j+1]);
                swap(name[j],name[j+1]);
            }
        }
    }
}

//降序
void bubble_sort02(int* score,string* name,int n){
    for(int i=0;i<n-1;i++){
        for(int j=0;j<n-1-i;j++){
            if(score[j]<score[j+1]){
                swap(score[j],score[j+1]);
                swap(name[j],name[j+1]);
            }
        }
    }
}

string names[1005];
int score[1005];

int main() {
    int n, f;
    while (cin >> n >> f) { // 注意 while 处理多个 case
        for(int k=0;k<n;k++){
            cin>>names[k]>>score[k];
        }

        if(f){
            bubble_sort01(score,names,n);
        }else {
            bubble_sort02(score,names,n);
        }

        for(int i=0;i<n;i++){
            cout<<names[i]<<" "<<score[i]<<endl;
        }
    }
}
// 64 位输出请用 printf("%lld")

冒泡是稳定排序,用两个冒泡,一个升序,一个降序,完美解决;