#include <stdio.h>
#include <string.h>
#define LEN 100005

typedef struct pp{
  char name[100];
  int t;
}P;

P Q[LEN];
int head, tail;

void enqueue(P x){//追加                                                        
  Q[tail] = x;
  tail=(tail+1)%LEN;
}

P dequeue(){//取り出し                                                          
  P x = Q[head];
  head=(head+1)%LEN;

 return x;
}

int min(int a,int b){
   if(a<b) return a;
   else return b;
 }

int main(){
  int elaps = 0;//経過　                                                        
  int c;
  int i,n,q;
  P u;

  scanf("%d %d", &n, &q);

 for(i=1; i<=n; i++){
   scanf("%s", Q[i].name);//文字列だから＆なし                                  
    scanf("%d", &Q[i].t);
  }

 head=1; tail=n+1;

 while(head != tail){
   u=dequeue();
   c=min(q,u.t);
   u.t = u.t-c;
   elaps = elaps+c;
   if(u.t>0){
     enqueue(u);
   }
   else{
     printf("%s %d\n",u.name,elaps);
   }
 }

  return 0;
}

