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

typedef struct pp{
  char name[100];
  int t;
}P; //構造体の定義

P Q[LEN];

int head;
int tail;
int n;
void enqueue(P x){
  Q[tail]=x;
  tail = (tail+1)%LEN; //LENで巡回させる。
}

P dequeue(){
  P x = Q[head]; //先頭を取り出す。
  head = (head+1)%LEN;
  return x;
}

int min(int a, int b){
  return a<b? a:b;
}//a<bが真ならa 偽ならbを返す。

int main(){
  int elaps =0,c;
  int i,q;
  P u; //取り出す構造体避難用
  scanf("%d %d",&n,&q); //nはプロセスの数　qはクオンタム
  for (i = 1; i < n; i++) { //i=1は仕様　別に0でも動く?
    scanf("%s",Q[i].name );
    scanf("%d",&Q[i].t);
  }
  head=1;
  tail = n+1;
  //simu
  while(head!=tail) //head=tail になったときシミュレーション終了
  {
    u = dequeue();
    c = min(u.t,q);
    u.t-=c;
    elaps += c; //経過時間
    if(u.t>0)enqueue(u);
    else{
      printf("%s %d\n",u.name,elaps );//終わったら表示
    }
  }
return 0;
}
