#include <stdio.h>
int index[1000000];
int head,tail;
int sum;

typedef struct{
	char name[10];
	int t;
}data;

data d[100000];

void put(int n){
	index[tail++]=n;
}

int get(){
	return index[head++];
}

void process(int q){
	int x;
	while(tail!=head){
		x=get();
		if(d[x].t > q){
			d[x].t=d[x].t-q;
			sum+=q;
			put(x);
		}else{
			sum+=d[x].t;
			printf("%s %d\n",d[x].name,sum);
		}

	}
}

int main(){
	int i,n,q;

	scanf("%d %d",&n,&q);
	head=0,tail=n,sum=0;

	for(i=0;i<n;i++){
		scanf("%s %d",d[i].name,&d[i].t);
		index[i]=i;
	}
	process(q);

	return 0;
}