#include <stdio.h>

long q_head = 0;
long q_tail = 0;
long fin_num=0,cur_time=0;

struct Process{
	long time;
	char name[15];
};
struct Process q[1000000],fin[100000];

//functions
void output();
void enqueue(long l,char *c);
struct Process dequeue(void);
void sim(int i);

int main(void){
	int i,j;
	int n,quantum;
	char c;

	scanf("%d %d",&n,&quantum);
	for(i=0;i<n;i++){
		j=0;
		c = getchar();
		c = getchar();
		while(1){
			if(c == ' ' || c == '\n') break;
			q[i].name[j++]=c;
			c = getchar();
		}
		scanf("%ld",&q[i].time);
	}
	q_tail = n; 
	sim(quantum);
	for(i=0;i<fin_num;i++){
		printf("%s ",fin[i].name);
		printf("%ld\n",fin[i].time);
		//if(i<fin_num-1) printf(" ");
	}
	//printf("\n");
	return 0;
}
void output(){
	int i;
	for(i=q_head;i<q_tail;i++){
		printf("%s ",q[i].name);
		printf("%ld",q[i].time);
		if(i<q_tail-1) printf(" ");
	}
	printf("\n");
	return;
}
void enqueue(long time,char *name){
	int i = 0;
	q[q_tail].time  = time;
	while(name[i] != '\0'){
		q[q_tail].name[i] = name[i];
		i++;
	}
	q_tail++;
	return;
}

struct Process dequeue(){
	return q[q_head++];
}

void sim(int quantum){
	struct Process p;
	while(q_head != q_tail){
			p = dequeue();
			if(p.time<=quantum){
				cur_time += p.time;
				p.time = cur_time;
				fin[fin_num++] = p;
			}else{
				p.time -= quantum;
				cur_time += quantum;
				enqueue(p.time, p.name);
			}
			if(q_head == q_tail) break;
			//output();
	}

return;
}