import java.io.*;
import java.util.*;

public class Main
{
    public static void main(String[] args)
    {
        Deque<String> name = new ArrayDeque<String>();
        Deque<Integer> time = new ArrayDeque<Integer>();
        Scanner scan = new Scanner(System.in);

        int n = scan.nextInt();
        int quantum = scan.nextInt();

        for(int i=0; i<n; i++)
        {
            name.offerLast(scan.next());
            time.offerLast(scan.nextInt());
        }

        String process_name;
        int process_time;
        int elapsed_time = 0;
        while((process_name = name.pollFirst())!=null)
        {
            process_time = time.pollFirst();
            if(process_time > quantum)
            {
                name.offerLast(process_name);
                time.offerLast(process_time - quantum);
                elapsed_time += quantum;
            }
            else
            {
                elapsed_time += process_time;
                System.out.println(process_name + " " + elapsed_time);
            }
        }
    }
}
/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