/*キュー*/
#include <stdio.h>
#define N 10000

typedef struct{
  char name[10];
  int time, n, q;
} process;

int main(){
  process a[N], temp;
  int n, q, i, j;
  int alltime=0;
  
  scanf("%d %d", &n, &q);
  
  for (i=0; i<n; i++){
    scanf("%s %d", a[i].name, &a[i].time);
  }
  
  /*
    printf("\n");
    for (i=0; i<n; i++){
    printf("%s %d \n", a[i].name, a[i].time);
    }
    確認用*/
  
  while(1){
    
    if (n==1){
      alltime += a[0].time;
      printf("%s %d\n", a[0].name, alltime);
      break;
    }

    /*１つのプロセスが終わらない場合*/
    else if(a[0].time > q){
      a[0].time -= q;
      alltime += q;
      
      /*入れ替え*/
      temp = a[0];
      for (i=1; i<n; i++){
	a[i-1] = a[i];
      }
      a[n-1] = temp;
    }
    
    /*１つのプロセスが終わる場合*/
    else{
      alltime += a[0].time;
      a[0].time = 0;
      printf("%s %d\n", a[0].name, alltime);
      
      /*前につめる*/
      for (i=1; i<n; i++){
	a[i-1] = a[i];
      }
      n--;
    } 
    
  }
  
  return 0;
}

