#include <stdio.h>

#define MAX_NUM 1000000

// プロセス構造体
typedef struct {
    char name[11];
    int time;
    int end;
} proc;

// キューの定義
static proc queue[MAX_NUM];
// キューの先頭
int head = 0;
// キューの末尾
int tail = 0;

// エンキュー
void enq(proc p)
{
    tail++;
    queue[tail - 1] = p;
}

// デキュー
proc deq(void)
{
    head++;
    return queue[head - 1];
}

int main(void)
{
    int n;
    int q;
    proc work;
    int elapsed;
    
    // 入力
    scanf("%d %d", &n, &q);
    
    for ( int i = 0; i < n; i++ ) {
        scanf("%s %d", &work.name[0], &work.time);
        enq(work);
    }
    
    // プロセス処理開始
    elapsed = 0;

    while ( head != tail ) {
        work = deq();
        work.time -= q;
        elapsed += q;
        if ( work.time > 0 ) {
            enq(work);
        } else {
            if ( work.time < 0 ) {
                elapsed += work.time;
            }
            work.end = elapsed;
            printf("%s %d\n", work.name, work.end);
        }
    }

    return 0;
}
