#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX 1000000

//prototype
void enqueue(char*, int);
struct Queue dequeue();
int isEmpty();
int isFull();

//Structure
struct Queue{
  char name[10];
  int time; //time:??????????????????, sum_time:?????????????????????(??????)
};

//global variables
struct Queue Q[MAX];
int head=0,tail=0;

/* the method of enqueue */
void enqueue(char *name, int time){ //java??????????????????????????§?????°?????¨?????????????????????????????????????????????????????????????????????????????????????????´??§?????´????????????????????????

  //???????´??????£??\
  strcpy(Q[tail].name, name);
  Q[tail].time = time;

  if(tail + 1 == MAX){
    tail = 0; //?????°
  }else{
    tail++;
  }
}

/* the method of dequeue */
struct Queue dequeue(){
  struct Queue x;

  x = Q[head];
  if(head + 1 == MAX){ //?¬????????´???´????????¢????????´????????????????????????
    head = 0;
  }else{
    head++;
  }

//  printf("dequeue: %s %d\n",x.name, x.time); //@@

  return x;
}

 /**
  * Judge the queue is if Empty or not 
  * 1: is Empty
  * 0: is not Empty
  */
int isEmpty(){
  if(head==tail){
//    printf("Error: Underflow\n");
    return 1;
  }else{
    return 0;
  }
}

 /**
  * Judge the queue is if Full or not 
  * 1: is Full
  * 0: is not Full
  */
int isFull(){
  if(head == (tail+1)%MAX){ //%MAX??????????????¨???head==0, tail==MAX-1?????????head==tail+1??§Full??¨??????????????????
//    printf("Error: Overflow\n");
    return 1;
  }else{
    return 0;
  }
}

//MAIN
int main(){
  int i,n,q,time,sum_time=0;
  char name[10];
  struct Queue x; // dequeue()???????????????????´?

  //input default data(the number of elements & quantum time)
  scanf("%d%d",&n,&q);

  //???????????\???&????´? completing Q[]
  for(i=0;i<n;i++){
    scanf("%s %d", name, &time);
    if(isFull()){ //full??????exit()
      exit(1);
    }else{
      enqueue(name, time);
    }
  }
  
  while(!isEmpty()){ //Q[]???????´????????????????
//    printf("q: %d\nsum_time: %d\n",q,sum_time); //@@
    x = dequeue();
//    printf("time %d\n",x.time); //@@
    if(x.time<=q){ //????????????????????§??????
//      printf("enter <=q\n"); //@@
//      q -= x.time; //???????????????????????£???????????´??????????????????????¬????????´?????????????????????????????????????
      q = 100;
      sum_time += x.time; //??????????????????????????????
      printf("%s %d\n",x.name, sum_time);
    }else{
//      printf("enter >q\n"); //@@
      sum_time += q; //??????????????????????????????
      x.time -= q; //???????????????????????????
//      printf("x_name: %s x_time: %d\n",x.name, x.time); //@@
      enqueue(x.name, x.time); //???????????¨Q[]??????????????????????????????
      q = 100; //?????????????????????
    }
  }

  return 0;
}