using System;
using System.IO;
using System.Collections;
namespace DefaultNamespace
{
	
	public class Class1
	{
		
		public static void Main(string[] args)
		{
			Queue q =new Queue();
			
			var sw = new StreamWriter(Console.OpenStandardOutput())
			{AutoFlush = false};
			Console.SetOut(sw);
			//output??????
			foreach(string e in q)
			{
				Console.WriteLine(e);
			}
			//???????????§?????? 
			Console.Out.Flush();
		}
	}
	public class Queue:IEnumerable
	{
		int d=0;//results?????????????????????
		int head=0;
		int tail=0;		
		int n;
		int quantum;
		string[]  name;
		int[] time;
		int timeCounter=0;
		string[] results;
		public Queue()
		{
			
		
			string nq=Console.ReadLine();
			string[] nQueue=nq.Split();
			
			n=int.Parse(nQueue[0]);
			quantum=int.Parse(nQueue[1]);
			
			
			name=new string[n+1];
			time=new int[n+1];
			results=new string[n];
			for(int i=0;i<n;i++)
//??????????????????????°??????°????????\??£?????????????????????????????????n-1.?????????tail(???)??????
   	    	{
				string nt=Console.ReadLine();
				string[] nameTime=nt.Split();
				int timeTemp;
				string nameTemp;
				//????????§?????????????????????????????°??????????????????????????????
				nameTemp=nameTime[0];
				timeTemp=int.Parse(nameTime[1]);
				//???????????????????????????
				answer(i,nameTemp, timeTemp);
			}
			answerQ();
		}
		//??????
//??????????????????????????????????????????????????????????????¨???????????????????????§????????£??????????????????
public bool isEmpty()
{
	if(head==tail)
	{
		return false;
	}
	else return true;
    }
    
		public int isFull(int a)
		{
			//head or tail????????????
			if(a==n)
			{
				a=0;
			}
			else a++;
			return a;
		}
		public void enqueue(string nt,int tq)
		{//?????¨head???????????°?????¨?????????tail?????£??\tail????????????
			timeCounter+=quantum;
			time[tail]=tq;
			name[tail]=nt;
			tail=isFull(tail);
			head=isFull(head);
		
		
		}
		public void dequeue(string na,int tim)//?????¨????´??????????????????¨??????????????????
		{
			result(na,tim);
		
			//head?????????????????????????????????
			head=isFull(head);
		
		}
		
		public void result(string na,int tim)
		{
				timeCounter+=tim;
			
			//results[]?????\?????????string?????????????????????????????????????????§??????
			string tmp=timeCounter.ToString();
			results[d]=na + " " + tmp;
			
			d++;
		
		}
		
		public void answer(int index,string nT,int ti)
		{
			
			//ti??§??°???????????\??????if??§?????????
			/*
			if(index==n-1)//queue??????????????\??????
				//??????????????????????????????????????????????????????????????¨????????§?????\????????????????????\??£???????????£?????????
				//?????????runtime error????????????????????????????????£?????¨????????§????????\??????????????????????????????????????????
				//queue6.cs??????????????§?????£???
			{
				head=0;
			
			while(isEmpty())
			{
				processing(name[head],time[head]);
			
			}//?????\?????????????????£???????????????
			//time[]??¨quantum????????????quantum????????£??????time[]???timeCounter????¶????
			
			}
			else {//?¬¬??????????????????
			*/
				processing(nT,ti);
			
		    
		}
		
		public void answerQ()
		{
			head=0;
			while(isEmpty())
			{
				processing(name[head],time[head]);
			
			}
		}
		public void processing(string na,int t)
		{
		  int k;
		if((k=(t-quantum))<=0)
				{
					
					dequeue(na ,t);
				}
				else//t-quantum>0
				{
					enqueue(na,k);
				}
		
		}
		
		public IEnumerator GetEnumerator()
		{
			for(int r=0;r<results.Length;r++)
			{
				yield return results[r];
			
			}
		}
	}
	
}

Measured memory_bytes: 14080