#include<stdio.h>
#define MAX 100001
 
 struct P{
          char name[10];
          int time;
          };

 struct P q[MAX];
 int head,tail;

 int init(){
        return head=tail=0;
        }

 int empty(){
        return head==tail;
        }

 int full(){
        return (tail+1)%MAX;
        }

 void enqueue(struct P x){
        if(full())return;

        q[tail]=x;
        tail=(tail+1)%MAX;
        }

 int dequeue(){
        if(empty())return;

        struct P x=q[head];
        head=(head+1)%MAX;
        return x;
        }

 int main(){
      int n,lim,ttt,sum=0,i;
      init();
      scanf("%d%d",&n,&lim);
      for(i=1;i<=n;i++){
                scanf("%s%d",&q[i].name,&q[i].time);
                }
      head=1;tail=n+1;
                
      while(head != tail){
                     struct P c=dequeue();
                     ttt=(c.time>lim)?c.time:lim;
                     c.time-=ttt;
                     sum+=ttt;
                     if(c.time>0)enqueue(c);
                     else {printf("%s %d\n",c.name,sum);}
                     }
      return 0;
      }




      
