#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100000

int head = 0;       //キューの先頭
int tail = 0;       //キューの最後
int n=0;
typedef struct Process{
  char name[10];
  int time;
}P;
P p[MAXSIZE];
void enq(P x) {
  p[tail]=x;
  tail=(tail+1)%MAXSIZE;
}

P deq() {
  P x=p[head];
  head=(head+1)%MAXSIZE;
  return x;
}
int min(int x,int y){
  if(x>y)return y;
  else return x;
}
  int main(){
    int i,n,q,t,e=0;
    P pp;
    scanf("%d %d",&n,&q);
    for(i=0;i<n;i++){
      scanf("%s%d",p[i].name,&p[i].time);
    }
    head=0;
    tail=n;
    while(head!=tail){
      pp=deq();
      t=min(q,pp.time);
      pp.time-=t;
      e+=t;
      if(pp.time>0)enq(pp);
      else{
	printf("%s %d\n",pp.name,e);
      }
    }
    return 0;
  }
    

