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

class Main{
    public static void main(String[] args) throws IOException{
	Scanner s=new Scanner(System.in);
	int i,n,m,gt=0;

	Queue<String>q=new LinkedList<String>();
	Queue<Integer>time=new LinkedList<Integer>();

	n=s.nextInt();
	m=s.nextInt();

	for(i=0;i<n;i++){
	    q.add(s.next());
	    time.add(s.nextInt());
	}

	while(0<q.size()){
	    if(0<(time.peek()-m)){
		q.add(q.poll());
		time.add(time.poll()-m);
		gt=gt+m;
	    }
	    else{
		gt=gt+time.poll();
		System.out.println(q.poll()+" "+gt);
	    }
	}
    }
}
 import java.util.*; util.* java import java.io.*; io.* java class Main{
    public static void main(String[] args) throws IOException{
	Scanner s=new Scanner(System.in);
	int i,n,m,gt=0;

	Queue<String>q=new LinkedList<String>();
	Queue<Integer>time=new LinkedList<Integer>();

	n=s.nextInt();
	m=s.nextInt();

	for(i=0;i<n;i++){
	    q.add(s.next());
	    time.add(s.nextInt());
	}

	while(0<q.size()){
	    if(0<(time.peek()-m)){
		q.add(q.poll());
		time.add(time.poll()-m);
		gt=gt+m;
	    }
	    else{
		gt=gt+time.poll();
		System.out.println(q.poll()+" "+gt);
	    }
	}
    }
} Main public static void main(String[] args) throws IOException{
	Scanner s=new Scanner(System.in);
	int i,n,m,gt=0;

	Queue<String>q=new LinkedList<String>();
	Queue<Integer>time=new LinkedList<Integer>();

	n=s.nextInt();
	m=s.nextInt();

	for(i=0;i<n;i++){
	    q.add(s.next());
	    time.add(s.nextInt());
	}

	while(0<q.size()){
	    if(0<(time.peek()-m)){
		q.add(q.poll());
		time.add(time.poll()-m);
		gt=gt+m;
	    }
	    else{
		gt=gt+time.poll();
		System.out.println(q.poll()+" "+gt);
	    }
	}
    } main {
	Scanner s=new Scanner(System.in);
	int i,n,m,gt=0;

	Queue<String>q=new LinkedList<String>();
	Queue<Integer>time=new LinkedList<Integer>();

	n=s.nextInt();
	m=s.nextInt();

	for(i=0;i<n;i++){
	    q.add(s.next());
	    time.add(s.nextInt());
	}

	while(0<q.size()){
	    if(0<(time.peek()-m)){
		q.add(q.poll());
		time.add(time.poll()-m);
		gt=gt+m;
	    }
	    else{
		gt=gt+time.poll();
		System.out.println(q.poll()+" "+gt);
	    }
	}
    } Scanner s=new Scanner(System.in); s new Scanner(System.in) int i i n n m m gt=0; gt 0 Queue<String>q=new LinkedList<String>(); q new LinkedList<String>() Queue<Integer>time=new LinkedList<Integer>(); time new LinkedList<Integer>() n=s.nextInt() n s.nextInt() s.nextInt s m=s.nextInt() m s.nextInt() s.nextInt s for(i=0;i<n;i++){
	    q.add(s.next());
	    time.add(s.nextInt());
	} i=0; i=0 i 0 i<n i n i++ i++ i {
	    q.add(s.next());
	    time.add(s.nextInt());
	} {
	    q.add(s.next());
	    time.add(s.nextInt());
	} q.add(s.next()) q.add q s.next() s.next s time.add(s.nextInt()) time.add time s.nextInt() s.nextInt s while(0<q.size()){
	    if(0<(time.peek()-m)){
		q.add(q.poll());
		time.add(time.poll()-m);
		gt=gt+m;
	    }
	    else{
		gt=gt+time.poll();
		System.out.println(q.poll()+" "+gt);
	    }
	} 0<q.size() 0 q.size() q.size q {
	    if(0<(time.peek()-m)){
		q.add(q.poll());
		time.add(time.poll()-m);
		gt=gt+m;
	    }
	    else{
		gt=gt+time.poll();
		System.out.println(q.poll()+" "+gt);
	    }
	} if(0<(time.peek()-m)){
		q.add(q.poll());
		time.add(time.poll()-m);
		gt=gt+m;
	    }
	    else{
		gt=gt+time.poll();
		System.out.println(q.poll()+" "+gt);
	    } 0<(time.peek()-m) 0 (time.peek()-m) time.peek() time.peek time m {
		q.add(q.poll());
		time.add(time.poll()-m);
		gt=gt+m;
	    } q.add(q.poll()) q.add q q.poll() q.poll q time.add(time.poll()-m) time.add time time.poll()-m time.poll() time.poll time m gt=gt+m gt gt+m gt m {
		gt=gt+time.poll();
		System.out.println(q.poll()+" "+gt);
	    } gt=gt+time.poll() gt gt+time.poll() gt time.poll() time.poll time System.out.println(q.poll()+" "+gt) System.out.println System.out System System.out q.poll()+" "+gt q.poll()+" "+gt q.poll() q.poll q " " gt String[] args args
import java.util.*;
import java.io.*;

class Main{
    public static void main(String[] args) throws IOException{
	Scanner s=new Scanner(System.in);
	int i,n,m,gt=0;

	Queue<String>q=new LinkedList<String>();
	Queue<Integer>time=new LinkedList<Integer>();

	n=s.nextInt();
	m=s.nextInt();

	for(i=0;i<n;i++){
	    q.add(s.next());
	    time.add(s.nextInt());
	}

	while(0<q.size()){
	    if(0<(time.peek()-m)){
		q.add(q.poll());
		time.add(time.poll()-m);
		gt=gt+m;
	    }
	    else{
		gt=gt+time.poll();
		System.out.println(q.poll()+" "+gt);
	    }
	}
    }
}

