#include <stdio.h>
#include <string.h>
#define N 100000
#define L 10

typedef struct qe{
    char name[L];
    int tim;
}Q;

Q Qlem[N];
int head,tail,n; 

void enqueue(Q);
Q dequeue(void);
int min(int , int);

int main(){
	int elaps=0,cha,i,q;
	Q user;
	scanf("%d %d",&n,&q);
	for(i=0;i<n;i++){
		scanf("%s",Qlem[i].name);
		scanf("%d",&Qlem[i].tim);
	}
	head=1;
	tail=n+1;

	while(head!=tail){
		user=dequeue();
		cha=min(q,user.tim);
		user.tim-=cha;
		elaps+=cha;
		if(user.tim>0) enqueue(user);
		else{
			printf("%s %d\n",user.name, elaps);
		}
	}
	return 0;
}

void enqueue(Q x){
	Qlem[tail]=x;
	tail=(tail+1)%N;
}
Q dequeue(){
	Q x=Qlem[head];
	head=(head+1)%N;
	return x;
}
int min(int a,int b){
	return a<b?a:b;
}