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

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

P Q[LEN+1];
int head, tail, n;

int isEmpty(){
	if(head==tail){
		return 1;
	}
	else{
		return 0;
	}
}

int isFull(){
	if(head==(tail+1)%LEN){
		return 1;
	}
	else{
		return 0;
	}
	
}

void enqueue(P x){
	if(isFull()==1){
		exit(1);
	}
	Q[tail]=x;
	tail=(tail+1)%LEN;
}

P dequeue(){
	P x;
	if(isEmpty()==1){
		exit(1);
	}
	x=Q[head];
	head=(head+1)%LEN;
	return x;
}

int main(){
	int elaps = 0;
	int i, q;
	P u;
	scanf("%d %d", &n, &q);

	for ( i = 1; i <= n; i++){
		scanf("%s", Q[i].name);
		scanf("%d", &Q[i].t);
	}
	head=1;
	tail=n+1;
	
	while(head!=tail){
		u=dequeue();
		if(q<u.t){
			u.t=u.t-q;
			elaps=elaps+q;
			enqueue(u);
		}
		else{
			elaps=elaps+u.t;
			printf("%s %d\n",u.name,elaps);
		}
	}
  return 0;
}
