标准库stable_sort()
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;

struct Item {
    string name;
    int     num;
};

int compare_item_0(Item item1, Item item2) {
    return item1.num < item2.num;
}

int compare_item_1(Item item1, Item item2) {
    return item1.num > item2.num;
}

int main() {
    vector<Item> items;
    int num, flag;
    while (cin >> num >> flag) {
        items.clear();
        for (int i = 0; i != num; i++) {
            Item item;
            cin >> item.name >> item.num;
            items.push_back(item);
        }
        
        if (flag == 1) {
            stable_sort(items.begin(), items.end(), compare_item_0);
        } else if (flag == 0) {
            stable_sort(items.begin(), items.end(), compare_item_1);
        }

        for (int i = 0; i != items.size(); i++) {
            cout << items[i].name << " " << items[i].num << endl;
        }
    }
    return 0;
}