import java.util.ArrayList;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO ?????????????????????????????????????????????
		Scanner sc = new Scanner(System.in);
		String line1 = sc.nextLine();
		String[] li1 = line1.split(" ");
		int n = Integer.parseInt(li1[0]);
		int q = Integer.parseInt(li1[1]);

		ArrayList<String> st = new ArrayList<String>();
		ArrayList<Integer> in = new ArrayList<Integer>();

		for (int i = 0; i < n; i++) {
			String kari1 = sc.nextLine();
			String[] kari2 = kari1.split(" ");
			
			st.add(kari2[0]);
			in.add(Integer.parseInt(kari2[1]));
		}
		
		int time = 0;
		
		while (in.size() > 0) {
			if (in.get(0) <= q) {
				time += in.get(0);
				System.out.println(st.get(0) + " " + time);
				in.remove(0);
				st.remove(0);
			} else {
				time += q;
				in.add(in.get(0) - q);
				st.add(st.get(0));
				in.remove(0);
				st.remove(0);

			}
		}

	}

} import java.util.ArrayList; ArrayList java.util import java.util.Scanner; Scanner java.util public class Main {

	public static void main(String[] args) {
		// TODO ?????????????????????????????????????????????
		Scanner sc = new Scanner(System.in);
		String line1 = sc.nextLine();
		String[] li1 = line1.split(" ");
		int n = Integer.parseInt(li1[0]);
		int q = Integer.parseInt(li1[1]);

		ArrayList<String> st = new ArrayList<String>();
		ArrayList<Integer> in = new ArrayList<Integer>();

		for (int i = 0; i < n; i++) {
			String kari1 = sc.nextLine();
			String[] kari2 = kari1.split(" ");
			
			st.add(kari2[0]);
			in.add(Integer.parseInt(kari2[1]));
		}
		
		int time = 0;
		
		while (in.size() > 0) {
			if (in.get(0) <= q) {
				time += in.get(0);
				System.out.println(st.get(0) + " " + time);
				in.remove(0);
				st.remove(0);
			} else {
				time += q;
				in.add(in.get(0) - q);
				st.add(st.get(0));
				in.remove(0);
				st.remove(0);

			}
		}

	}

} Main public static void main(String[] args) {
		// TODO ?????????????????????????????????????????????
		Scanner sc = new Scanner(System.in);
		String line1 = sc.nextLine();
		String[] li1 = line1.split(" ");
		int n = Integer.parseInt(li1[0]);
		int q = Integer.parseInt(li1[1]);

		ArrayList<String> st = new ArrayList<String>();
		ArrayList<Integer> in = new ArrayList<Integer>();

		for (int i = 0; i < n; i++) {
			String kari1 = sc.nextLine();
			String[] kari2 = kari1.split(" ");
			
			st.add(kari2[0]);
			in.add(Integer.parseInt(kari2[1]));
		}
		
		int time = 0;
		
		while (in.size() > 0) {
			if (in.get(0) <= q) {
				time += in.get(0);
				System.out.println(st.get(0) + " " + time);
				in.remove(0);
				st.remove(0);
			} else {
				time += q;
				in.add(in.get(0) - q);
				st.add(st.get(0));
				in.remove(0);
				st.remove(0);

			}
		}

	} main {
		// TODO ?????????????????????????????????????????????
		Scanner sc = new Scanner(System.in);
		String line1 = sc.nextLine();
		String[] li1 = line1.split(" ");
		int n = Integer.parseInt(li1[0]);
		int q = Integer.parseInt(li1[1]);

		ArrayList<String> st = new ArrayList<String>();
		ArrayList<Integer> in = new ArrayList<Integer>();

		for (int i = 0; i < n; i++) {
			String kari1 = sc.nextLine();
			String[] kari2 = kari1.split(" ");
			
			st.add(kari2[0]);
			in.add(Integer.parseInt(kari2[1]));
		}
		
		int time = 0;
		
		while (in.size() > 0) {
			if (in.get(0) <= q) {
				time += in.get(0);
				System.out.println(st.get(0) + " " + time);
				in.remove(0);
				st.remove(0);
			} else {
				time += q;
				in.add(in.get(0) - q);
				st.add(st.get(0));
				in.remove(0);
				st.remove(0);

			}
		}

	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) String line1 = sc.nextLine(); line1 sc.nextLine() sc.nextLine sc String[] li1 = line1.split(" "); li1 line1.split(" ") line1.split line1 " " int n = Integer.parseInt(li1[0]); n Integer.parseInt(li1[0]) Integer.parseInt Integer li1[0] li1 0 int q = Integer.parseInt(li1[1]); q Integer.parseInt(li1[1]) Integer.parseInt Integer li1[1] li1 1 ArrayList<String> st = new ArrayList<String>(); st new ArrayList<String>() ArrayList<Integer> in = new ArrayList<Integer>(); in new ArrayList<Integer>() for (int i = 0; i < n; i++) {
			String kari1 = sc.nextLine();
			String[] kari2 = kari1.split(" ");
			
			st.add(kari2[0]);
			in.add(Integer.parseInt(kari2[1]));
		} int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
			String kari1 = sc.nextLine();
			String[] kari2 = kari1.split(" ");
			
			st.add(kari2[0]);
			in.add(Integer.parseInt(kari2[1]));
		} {
			String kari1 = sc.nextLine();
			String[] kari2 = kari1.split(" ");
			
			st.add(kari2[0]);
			in.add(Integer.parseInt(kari2[1]));
		} String kari1 = sc.nextLine(); kari1 sc.nextLine() sc.nextLine sc String[] kari2 = kari1.split(" "); kari2 kari1.split(" ") kari1.split kari1 " " st.add(kari2[0]) st.add st kari2[0] kari2 0 in.add(Integer.parseInt(kari2[1])) in.add in Integer.parseInt(kari2[1]) Integer.parseInt Integer kari2[1] kari2 1 int time = 0; time 0 while (in.size() > 0) {
			if (in.get(0) <= q) {
				time += in.get(0);
				System.out.println(st.get(0) + " " + time);
				in.remove(0);
				st.remove(0);
			} else {
				time += q;
				in.add(in.get(0) - q);
				st.add(st.get(0));
				in.remove(0);
				st.remove(0);

			}
		} in.size() > 0 in.size() in.size in 0 {
			if (in.get(0) <= q) {
				time += in.get(0);
				System.out.println(st.get(0) + " " + time);
				in.remove(0);
				st.remove(0);
			} else {
				time += q;
				in.add(in.get(0) - q);
				st.add(st.get(0));
				in.remove(0);
				st.remove(0);

			}
		} if (in.get(0) <= q) {
				time += in.get(0);
				System.out.println(st.get(0) + " " + time);
				in.remove(0);
				st.remove(0);
			} else {
				time += q;
				in.add(in.get(0) - q);
				st.add(st.get(0));
				in.remove(0);
				st.remove(0);

			} in.get(0) <= q in.get(0) in.get in 0 q {
				time += in.get(0);
				System.out.println(st.get(0) + " " + time);
				in.remove(0);
				st.remove(0);
			} time += in.get(0) time in.get(0) in.get in 0 System.out.println(st.get(0) + " " + time) System.out.println System.out System System.out st.get(0) + " " + time st.get(0) + " " + time st.get(0) st.get st 0 " " time in.remove(0) in.remove in 0 st.remove(0) st.remove st 0 {
				time += q;
				in.add(in.get(0) - q);
				st.add(st.get(0));
				in.remove(0);
				st.remove(0);

			} time += q time q in.add(in.get(0) - q) in.add in in.get(0) - q in.get(0) in.get in 0 q st.add(st.get(0)) st.add st st.get(0) st.get st 0 in.remove(0) in.remove in 0 st.remove(0) st.remove st 0 String[] args args public class Main {

	public static void main(String[] args) {
		// TODO ?????????????????????????????????????????????
		Scanner sc = new Scanner(System.in);
		String line1 = sc.nextLine();
		String[] li1 = line1.split(" ");
		int n = Integer.parseInt(li1[0]);
		int q = Integer.parseInt(li1[1]);

		ArrayList<String> st = new ArrayList<String>();
		ArrayList<Integer> in = new ArrayList<Integer>();

		for (int i = 0; i < n; i++) {
			String kari1 = sc.nextLine();
			String[] kari2 = kari1.split(" ");
			
			st.add(kari2[0]);
			in.add(Integer.parseInt(kari2[1]));
		}
		
		int time = 0;
		
		while (in.size() > 0) {
			if (in.get(0) <= q) {
				time += in.get(0);
				System.out.println(st.get(0) + " " + time);
				in.remove(0);
				st.remove(0);
			} else {
				time += q;
				in.add(in.get(0) - q);
				st.add(st.get(0));
				in.remove(0);
				st.remove(0);

			}
		}

	}

} public class Main {

	public static void main(String[] args) {
		// TODO ?????????????????????????????????????????????
		Scanner sc = new Scanner(System.in);
		String line1 = sc.nextLine();
		String[] li1 = line1.split(" ");
		int n = Integer.parseInt(li1[0]);
		int q = Integer.parseInt(li1[1]);

		ArrayList<String> st = new ArrayList<String>();
		ArrayList<Integer> in = new ArrayList<Integer>();

		for (int i = 0; i < n; i++) {
			String kari1 = sc.nextLine();
			String[] kari2 = kari1.split(" ");
			
			st.add(kari2[0]);
			in.add(Integer.parseInt(kari2[1]));
		}
		
		int time = 0;
		
		while (in.size() > 0) {
			if (in.get(0) <= q) {
				time += in.get(0);
				System.out.println(st.get(0) + " " + time);
				in.remove(0);
				st.remove(0);
			} else {
				time += q;
				in.add(in.get(0) - q);
				st.add(st.get(0));
				in.remove(0);
				st.remove(0);

			}
		}

	}

} Main
import java.util.ArrayList;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO ?????????????????????????????????????????????
		Scanner sc = new Scanner(System.in);
		String line1 = sc.nextLine();
		String[] li1 = line1.split(" ");
		int n = Integer.parseInt(li1[0]);
		int q = Integer.parseInt(li1[1]);

		ArrayList<String> st = new ArrayList<String>();
		ArrayList<Integer> in = new ArrayList<Integer>();

		for (int i = 0; i < n; i++) {
			String kari1 = sc.nextLine();
			String[] kari2 = kari1.split(" ");
			
			st.add(kari2[0]);
			in.add(Integer.parseInt(kari2[1]));
		}
		
		int time = 0;
		
		while (in.size() > 0) {
			if (in.get(0) <= q) {
				time += in.get(0);
				System.out.println(st.get(0) + " " + time);
				in.remove(0);
				st.remove(0);
			} else {
				time += q;
				in.add(in.get(0) - q);
				st.add(st.get(0));
				in.remove(0);
				st.remove(0);

			}
		}

	}

}