#include<stdio.h>

#define LEN 100005
#define MAX 100000

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

P g_Q[LEN];
int g_head,g_tail,g_n;

void enqueue(P);
P dequeue();
int isEmpty();
int isFull();

int main(){

  int elaps = 0, c;
  int i, q;
  P u;
  scanf("%d %d", &g_n, &q);

  for(i = 1; i <= g_n; i++){
    scanf("%s", g_Q[i].name);
    scanf("%d",&g_Q[i].t);
  }

  g_head = 1;
  g_tail = g_n+1;

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

  return 0;
}

int isEmpty(){
  if(g_head == g_tail) return 1;
  else return 0;
}

int isFull(){
  if(g_head == (g_tail + 1) % MAX) return 1;
  else return 0;
}

void enqueue(P x){
  if(isFull() == 1) fprintf(stderr,"error,enqueu\n");
  g_Q[g_tail] = x;
  if(g_tail + 1 == MAX) g_tail = 0;
  else g_tail++;
}

P dequeue(){
  P x;
  if(isEmpty() == 1) fprintf(stderr,"error,dequeu\n");
  x = g_Q[g_head];
  if(g_head+1 == MAX) g_head = 0;
  else g_head++;

  return x;
}
    

