#include<stdio.h>
#include<string.h>
??
//?§???????
typedef struct {
????char name[10];
????int t;
}Process;
??
??
//????????????????????£?¨?
void enqueue(Process);
Process dequeue(void);
??
//??°?????????????????°
Process Q[100000];
int n,q;
int ttime;
int i,j;
??
int main(void){
??
????int count=0;
????Process stack[1000];
??
????scanf("%d %d", &n, &q);
??
????//?????±?????\???????????\???
????for ( i = 0; i < n; i++){
????????scanf("%s", Q[i].name);
????????scanf("%d", &Q[i].t);
????}
??
????for(i=0;i<n+j;i++){
????stack[count] = dequeue();
????if(stack[count].t != -1)
????enqueue(stack[count++]);
????}
??
????return 0;
}
??
??
//?????????????????????????????¨?????????
void enqueue(Process x){
??
????printf("%s %d\n",x.name,x.t);
}
??
Process dequeue(void){
??
????int flag=0;
??
????????if(Q[i].t <= q){
????????????ttime += Q[i].t;
????????????Q[i].t = ttime;
????????????flag=1;
????????} 
????????else{
????????????ttime += q;
????????????Q[n+j].t = Q[i].t - q;
????????????strcpy(Q[n+j].name,Q[i].name);
????????????j++;
????????}
??
????????if(flag==0)
????????????Q[i].t = -1;
??
????????????return Q[i];
??????????????
}