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();
	}
} import java.io.BufferedReader; BufferedReader java.io import java.io.InputStreamReader; InputStreamReader java.io import java.util.List; List java.util import java.util.ArrayList; ArrayList java.util import java.lang.StringBuffer; StringBuffer java.lang 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();
	}
} Main public static void main(String[] args) throws Exception {
		String i = RoundSchedule();
		System.out.print(i);
	} main {
		String i = RoundSchedule();
		System.out.print(i);
	} String i = RoundSchedule(); i RoundSchedule() RoundSchedule System.out.print(i) System.out.print System.out System System.out i String[] args args 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();
	} RoundSchedule {
		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();
	} BufferedReader sc = new BufferedReader(new InputStreamReader(System.in)); sc new BufferedReader(new InputStreamReader(System.in)) StringBuffer br = new StringBuffer(); br new StringBuffer() List<String> x = new ArrayList<String>(); x new ArrayList<String>() List<Integer> y = new ArrayList<Integer>(); y new ArrayList<Integer>() int t = 0; t 0 int k = 0; k 0 String[] s = sc.readLine().split(" "); s sc.readLine().split(" ") sc.readLine().split sc.readLine() sc.readLine sc " " int n = Integer.parseInt(s[0]); n Integer.parseInt(s[0]) Integer.parseInt Integer s[0] s 0 int q = Integer.parseInt(s[1]); q Integer.parseInt(s[1]) Integer.parseInt Integer s[1] s 1 for (int i = 0;i < n;i++) {
			s = sc.readLine().split(" ");
			x.add(s[0]);
			y.add(Integer.parseInt(s[1]));
		} int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
			s = sc.readLine().split(" ");
			x.add(s[0]);
			y.add(Integer.parseInt(s[1]));
		} {
			s = sc.readLine().split(" ");
			x.add(s[0]);
			y.add(Integer.parseInt(s[1]));
		} s = sc.readLine().split(" ") s sc.readLine().split(" ") sc.readLine().split sc.readLine() sc.readLine sc " " x.add(s[0]) x.add x s[0] s 0 y.add(Integer.parseInt(s[1])) y.add y Integer.parseInt(s[1]) Integer.parseInt Integer s[1] s 1 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);
				
			}
		} !x.isEmpty() x.isEmpty() x.isEmpty x {
			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);
				
			}
		} 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);
				
			} y.get(0) <= q y.get(0) y.get y 0 q {
				br.append(x.get(0)+" ");
				k += y.get(0);
				br.append(k+"\n");
				x.remove(0);
				y.remove(0);
			} br.append(x.get(0)+" ") br.append br x.get(0)+" " x.get(0) x.get x 0 " " k += y.get(0) k y.get(0) y.get y 0 br.append(k+"\n") br.append br k+"\n" k "\n" x.remove(0) x.remove x 0 y.remove(0) y.remove y 0 {
				k += q;
				t = y.get(0)-q;
				x.add(x.get(0));
				y.add(t);
				x.remove(0);
				y.remove(0);
				
			} k += q k q t = y.get(0)-q t y.get(0)-q y.get(0) y.get y 0 q x.add(x.get(0)) x.add x x.get(0) x.get x 0 y.add(t) y.add y t x.remove(0) x.remove x 0 y.remove(0) y.remove y 0 return br.toString(); br.toString() br.toString br 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();
	}
} 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();
	}
} Main
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();
	}
}