#define _CRT_SECURE_NO_WARNINGS 1
#include <bits/stdc++.h>
using namespace std;
struct student {
    string name;
    int score;
    int order;
};

bool compare_1(student x, student y) { //1从低到高
    if (x.score == y.score)return x.order < y.order;
    else return x.score < y.score;
}
bool compare_2(student x, student y) { //0从高到低
    if (x.score == y.score)return x.order < y.order;
    else return x.score > y.score;
}
int main() {
    int type = 0, n = 0;
    while (scanf("%d%d", &n, &type) != EOF) {
        student arr[n];//数据范围未知
        for (int i = 0; i < n; i++) {
            cin >> arr[i].name >> arr[i].score;
            arr[i].order = i;
        }
        if (type == 0) {
            sort(arr, arr + n, compare_2);
        } else {
            sort(arr, arr + n, compare_1);
        }
        for (int j = 0; j < n; j++) {
            cout << arr[j].name << " " << arr[j].score << endl;
        }

    }
    return 0;
}