import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.List;
import java.util.ArrayList;
import java.lang.StringBuffer;

/*Question
/?????? namei ??¨????????????????????? timei ????????? n ???????????????????????????????????????????????§????????????
/??????????????????????????±?????\???????????°??¨?????°????????????????????§??????CPU ?????????????????????????????????????????????
/???????????????????????§ q ms?????????????????????????????¨???????????????????????????????????????????????????
/q ms ????????????????????£????????????????????????????????????????????????????????°?????????????????????????????????????°?????§??????????CPU ????¬??????????????????????????????????????????????
/????????°????????????????????? 100 ms??¨???????¬??????????????????????????????\?????????????????????
/A(150) - B(80) - C(200) - D(200)
/?????????????????? A ??? 100 ms ??????????????????????????????????????? 50 ms ?????????????????\??????????°?????§????????????????
/B(80) - C(200) - D(200) - A(50)
/?¬???????????????? B ??? 80 ms ??????????????????????????? 180 ms ??§?????????????????\??????????????????????????????
/C(200) - D(200) - A(50)
/?¬???????????????? C ??? 100 ms ?????????????????????????????????????????? 100 ms ??????????????????????°?????§????????????????
/D(200) - A(50) - C(100)
/????????????????????¨??????????????????????????????????????§???????????°??????????????????
/??????????????????????????±?????\???????????°???????????\??¬????????????????????°???????????????????????????????????? 
*/

/*Input
/??\????????¢????????\??????????????§??????
/n q
/name1 time1
/name2 time2
/...
/namen timen
/????????????????????????????????°?????¨?????´??° n ??¨????????????????????¨?????´??° q ?????????????????????????????§?????????????????????
/?¶???? n ?????§??????????????????????????±?????????????????????????????????????????? namei ??¨??´??° timei ????????????????????§??????????????????????????? 
*/

public class Main {
	public static void main(String[] args) throws Exception {
		String i = RoundSchedule();
		System.out.print(i);
	}

	/*RoundSchedule????????????
	/??????????????????????????±?????\???????????°???????????\??????????????????
	/??¨????????????n??¨q???????´??????????n??????????????????????????????
	/???????????????????????????q??¨??????????????\????????????????????§????????????q?????????????°????
	/@return String
	*/

	static String RoundSchedule() throws Exception {
		BufferedReader sc = new BufferedReader(new InputStreamReader(System.in));
		//????????¨
		StringBuffer br = new StringBuffer();
		//??\?????¨??§?????????????????????????????¨?????????????´?
		List<String> x = new ArrayList<String>();
		List<Integer> y = new ArrayList<Integer>();
		//?????????????????????????´???¨
		int t = 0;
		//????¨?????????????????´???¨
		int k = 0;
		//1???????????\???
		String[] s = sc.readLine().split(" ");
		//??????????????°??¨??????????????????????´???¨
		int n = Integer.parseInt(s[0]);
		int q = Integer.parseInt(s[1]);
		//???????????????????????¨?????????????´?
		for (int i = 0;i < n;i++) {
			s = sc.readLine().split(" ");
			x.add(s[0]);
			y.add(Integer.parseInt(s[1]));
		}
		/*????????????????????£????????????????????????
		/???????????????????????????q??¨??????????????\????????????????????????????????§????????????q?????????????°????
		*/
		while (!x.isEmpty()){
			if (y.get(0) <= q) {
				br.append(x.get(0)+" ");
				k += y.get(0);
				br.append(k+"\n");
				x.remove(0);
				y.remove(0);
			}else {
				k += q;
				t = y.get(0)-q;
				x.add(x.get(0));
				y.add(t);
				x.remove(0);
				y.remove(0);
				
			}
		}
		return br.toString();
	}
}
/tmp/hf-datasets-cache/medium/datasets/42704881117311-config-parquet-and-info-qiankunmu-Project_CodeNet-896c9d36/hub/datasets--qiankunmu--Project_CodeNet_Python800_and_Java250/snapshots/c899fde44a77ba1cc14973ed3de064e4ff3aadc7/Project_CodeNet_Java250.tar.gz