
import Queue
n,q=map(int,raw_input().strip().split())
name=[]
time=[]
qu=Queue.Queue()
class task:
    def __init__(self,name,time):
        self.name=name
        self.time=time
        self.total=0
for i in xrange(n):
    inp=raw_input().strip().split()
    qu.put(task(inp[0],int(inp[1])))
curtime=0

while not qu.empty():
    tmp=qu.get()
    if tmp.time>q:
        tmp.time-=q
        curtime+=q
        qu.put(tmp)
    else:

        curtime+=tmp.time
        ed='' if qu.qsize()==0 else '\n'
        print tmp.name,curtime
#    print curtime


 import Queue Queue n,q=map(int,raw_input().strip().split()) n map(int,raw_input().strip().split()) map int raw_input().strip().split() ().strip().split ().strip() ().strip () raw_input strip split q name=[] name [] time=[] time [] qu=Queue.Queue() qu Queue.Queue() Queue.Queue Queue Queue class task:
    def __init__(self,name,time):
        self.name=name
        self.time=time
        self.total=0 task def __init__(self,name,time):
        self.name=name
        self.time=time
        self.total=0 __init__ self.name=name self.name self name name self.time=time self.time self time time self.total=0 self.total self total 0 self self name name time time for i in xrange(n):
    inp=raw_input().strip().split()
    qu.put(task(inp[0],int(inp[1]))) i xrange(n) xrange n inp=raw_input().strip().split() inp raw_input().strip().split() ().strip().split ().strip() ().strip () raw_input strip split qu.put(task(inp[0],int(inp[1]))) qu.put qu put task(inp[0],int(inp[1])) task inp[0] inp 0 int(inp[1]) int inp[1] inp 1 curtime=0 curtime 0 while not qu.empty():
    tmp=qu.get()
    if tmp.time>q:
        tmp.time-=q
        curtime+=q
        qu.put(tmp)
    else:

        curtime+=tmp.time
        ed='' if qu.qsize()==0 else '\n'
        print tmp.name,curtime
#    print curtime not qu.empty() qu.empty() qu.empty qu empty tmp=qu.get() tmp qu.get() qu.get qu get if tmp.time>q:
        tmp.time-=q
        curtime+=q
        qu.put(tmp)
    else:

        curtime+=tmp.time
        ed='' if qu.qsize()==0 else '\n'
        print tmp.name,curtime
#    print curtime tmp.time>q tmp.time tmp time q tmp.time-=q tmp.time tmp time q curtime+=q curtime q qu.put(tmp) qu.put qu put tmp curtime+=tmp.time curtime tmp.time tmp time ed='' if qu.qsize()==0 else '\n' ed '' if qu.qsize()==0 else '\n' qu.qsize()==0 qu.qsize() qu.qsize qu qsize 0 '' '\n' print tmp.name tmp name curtime curtime+=tmp.time tmp.time curtime q=map(int,raw_input().strip().split()) map(int,raw_input().strip().split()) q class task:
    def __init__(self,name,time):
        self.name=name
        self.time=time
        self.total=0 class task:
    def __init__(self,name,time):
        self.name=name
        self.time=time
        self.total=0 task curtime=0 0 curtime curtime+=q q curtime inp=raw_input().strip().split() raw_input().strip().split() inp time=[] [] time qu=Queue.Queue() Queue.Queue() qu ed='' if qu.qsize()==0 else '\n' '' if qu.qsize()==0 else '\n' ed name=[] [] name tmp=qu.get() qu.get() tmp n,q=map(int,raw_input().strip().split()) map(int,raw_input().strip().split()) n

import Queue
n,q=map(int,raw_input().strip().split())
name=[]
time=[]
qu=Queue.Queue()
class task:
    def __init__(self,name,time):
        self.name=name
        self.time=time
        self.total=0
for i in xrange(n):
    inp=raw_input().strip().split()
    qu.put(task(inp[0],int(inp[1])))
curtime=0

while not qu.empty():
    tmp=qu.get()
    if tmp.time>q:
        tmp.time-=q
        curtime+=q
        qu.put(tmp)
    else:

        curtime+=tmp.time
        ed='' if qu.qsize()==0 else '\n'
        print tmp.name,curtime
#    print curtime



