#include <stdio.h>

typedef struct
{
    char name[20];
    int  score;
    int  origin_index;
}student_t;

int main()
{
    int num, type;
    student_t students[200];
    
    if(scanf("%d", &num) == EOF)
    {
        return -1;
    }
    
    if(scanf("%d", &type) == EOF)
    {
        return -2;
    }
    
    for(int i = 0; i < num; i++)
    {
        scanf("%s", students[i].name);
        scanf("%d", &students[i].score);
        students[i].origin_index = i;
        
    }
    
    /* 冒泡排序 */
    for(int i = 0; i < num; i++)
    {
        for(int j = i+1; j < num; j++)
        {
            if(type == 1)        //由低到高
            {
                if(students[i].score > students[j].score)
                {
                    student_t tmp;
                    memcpy(&tmp, &students[i], sizeof(student_t));
                    memcpy(&students[i], &students[j], sizeof(student_t));
                    memcpy(&students[j], &tmp, sizeof(student_t));
                }
            }
            else if(type == 0)    //由高到底
            {
                 if(students[i].score < students[j].score)
                {
                    student_t tmp;
                    memcpy(&tmp, &students[i], sizeof(student_t));
                    memcpy(&students[i], &students[j], sizeof(student_t));
                    memcpy(&students[j], &tmp, sizeof(student_t));
                }
            }
            
        }
    }
    
    /* 相同分数,按出现前后排序 */
    for(int i = 0; i < num-1; i++)
    {
        int j = i+1;
        /* 寻找相同分数的所有学生 */
        while(students[i].score == students[j].score && j < num)
        {
            j++;
        }
        
        /* 此分数学生按出现前后重新排序 */
        for(int k = i; k < j; k++)
        {
            for(int m = k+1; m < j; m++)
            {
                if(students[k].origin_index > students[m].origin_index)
                {
                    student_t tmp;
                    memcpy(&tmp, &students[k], sizeof(student_t));
                    memcpy(&students[k], &students[m], sizeof(student_t));
                    memcpy(&students[m], &tmp, sizeof(student_t));
                }
            }
        }
        
    }

    for(int i = 0; i < num; i++)
    {
        printf("%s %d\n", students[i].name, students[i].score);
    }
 
    
    return 0;
}