#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX 100000
#define QMAX 1000
 
//構造体
typedef struct {
  char name[10];
  int t;
}Process;
  
//プロトタイプ宣言
void enqueue(Process);
Process dequeue(void);
  
//グローバル変数
Process Q[MAX];
int n,q;
int ttime;
int i;
int top,last;
  
int main(void){
  
  Process stack;
  
  scanf("%d %d", &n, &q);
  
  //スケジュールの入力
  for ( i = 0; i < n; i++){
    scanf("%s", stack.name);
    scanf("%d", &stack.t);
    enqueue(stack);
  }

  i=0;

  while(0 < n){

    stack = dequeue();

    if(stack.t <= q){
      printf("%s %d\n",stack.name,stack.t + ttime);
      --n;
    


    ttime += stack.t;
    }
    else{
      stack.t = stack.t - q;

      enqueue(stack);

      ttime += q;
    }
  }

  return 0;
}
    
//終了したプロセスを表示する
void enqueue(Process x){
  
  if(last+1 == MAX)
    last = 0;

  Q[last++] = x;
}
  
Process dequeue(void){

  if(head + 1 == MAX)
    head = 0;

 return Q[top++];
        
}