#include <iostream>
#include <cstdio>
#include <algorithm>

using namespace std;

struct Student {
    string name;
    int score;
    //标记顺序
    int flag;
};


/**
 * 降序排序
 * @param x
 * @param y
 * @param flag
 * @return
 */
bool compareDescend(Student x, Student y) {
    //按成绩从高到低排序
    if (x.score == y.score) {
        return x.flag < y.flag;
    } else {
        return x.score > y.score;
    }
}

/**
 * 升序排序
 * @param x
 * @param y
 * @return
 */
bool compareAscend(Student x, Student y) {
    //按成绩从低到高排序
    if (x.score == y.score) {
        return x.flag < y.flag;
    } else {
        return x.score < y.score;
    }
}

void print(Student student[], int n) {
    for (int i = 0; i < n; ++i) {
        cout << student[i].name << " " << student[i].score << endl;
    }
}

/**
 * 成绩排序--清华大学
 * @return
 */
int main() {

    int m;
    /*
     * 排序标记,0--降序;1--升序
     */
    int flag;
    while (cin >> m >> flag) {
        Student *student = new Student[m];
        for (int i = 0; i < m; ++i) {
            cin >> student[i].name >> student[i].score;
            student[i].flag = i;
        }

        if (flag == 0) {
            //降序
            sort(student, student + m, compareDescend);
        } else {
            //升序
            sort(student, student + m, compareAscend);
        }

        print(student, m);

    }
    return 0;
}