#include<stdio.h>
#include<string.h>
#define Length 100005

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

Strc L[Length];
int head,tail,n;

void enqueue(Strc x) {
L[tail] = x;
tail = (tail+1) % Length;
}

Strc dequeue() {
Strc x = L[head];
head = (head + 1) % Length;
  return x;
}

int min(int m, int k)
    {return m<k ? m:k;}
int main(){
  int elaps = 0,c;
  int i,q;
  Strc u;
  scanf("%d %d",&n,&q);
for(i=1;i<=n;i++){
scanf("%s",L[i].name);
scanf("%d",&L[i].t);
  }
  head = 1; tail = n+1;
while (head != tail){
u = dequeue();
c = min(q,u.t);
u.t -= c;
elaps += c;
if(u.t > 0) enqueue(u);
else{
  printf("%s %d\n",u.name, elaps);
}

}
  return 0;
}