n,q=map(int,raw_input().split())

lst = []
for idx in xrange(n):
    name, time = raw_input().split()
    lst.append([name, int(time)])

idx = 0
tot = 0
while True:
  lst[idx][1] = lst[idx][1] - q
  if lst[idx][1] <= 0:
    tot += q + lst[idx][1]
    lst[idx][1] = 0
    print "%s %d" % (lst[idx][0], tot)
    lst.pop(idx)
    if len(lst)==0:
        break
  else:
    tot += q
    idx+=1
  if (idx >= len(lst)):
    idx = 0 n,q=map(int,raw_input().split()) n map(int,raw_input().split()) map int raw_input().split() ().split () raw_input split q lst = [] lst [] for idx in xrange(n):
    name, time = raw_input().split()
    lst.append([name, int(time)]) idx xrange(n) xrange n name, time = raw_input().split() name raw_input().split() ().split () raw_input split time lst.append([name, int(time)]) lst.append lst append [name, int(time)] name int(time) int time idx = 0 idx 0 tot = 0 tot 0 while True:
  lst[idx][1] = lst[idx][1] - q
  if lst[idx][1] <= 0:
    tot += q + lst[idx][1]
    lst[idx][1] = 0
    print "%s %d" % (lst[idx][0], tot)
    lst.pop(idx)
    if len(lst)==0:
        break
  else:
    tot += q
    idx+=1
  if (idx >= len(lst)):
    idx = 0 True lst[idx][1] = lst[idx][1] - q lst[idx][1] [idx] lst idx 1 lst[idx][1] - q lst[idx][1] [idx] lst idx 1 q if lst[idx][1] <= 0:
    tot += q + lst[idx][1]
    lst[idx][1] = 0
    print "%s %d" % (lst[idx][0], tot)
    lst.pop(idx)
    if len(lst)==0:
        break
  else:
    tot += q
    idx+=1
   lst[idx][1] <= 0 lst[idx][1] [idx] lst idx 1 0 tot += q + lst[idx][1] tot q + lst[idx][1] q lst[idx][1] [idx] lst idx 1 lst[idx][1] = 0 lst[idx][1] [idx] lst idx 1 0 print "%s %d" % (lst[idx][0], tot) "%s %d" (lst[idx][0], tot) lst[idx][0] [idx] lst idx 0 tot lst.pop(idx) lst.pop lst pop idx if len(lst)==0:
        break
   len(lst)==0 len(lst) len lst 0 break tot += q tot q idx+=1 idx 1 if (idx >= len(lst)):
    idx = 0 idx >= len(lst) idx len(lst) len lst idx = 0 idx 0 tot = 0 0 tot n,q=map(int,raw_input().split()) map(int,raw_input().split()) n time = raw_input().split() raw_input().split() time tot += q + lst[idx][1] q + lst[idx][1] tot idx = 0 0 idx idx = 0 0 idx tot += q q tot name, time = raw_input().split() raw_input().split() name q=map(int,raw_input().split()) map(int,raw_input().split()) q lst = [] [] lst idx+=1 1 idx
n,q=map(int,raw_input().split())

lst = []
for idx in xrange(n):
    name, time = raw_input().split()
    lst.append([name, int(time)])

idx = 0
tot = 0
while True:
  lst[idx][1] = lst[idx][1] - q
  if lst[idx][1] <= 0:
    tot += q + lst[idx][1]
    lst[idx][1] = 0
    print "%s %d" % (lst[idx][0], tot)
    lst.pop(idx)
    if len(lst)==0:
        break
  else:
    tot += q
    idx+=1
  if (idx >= len(lst)):
    idx = 0