/**
 * ?????\???
?????? namei ??¨????????????????????? timei ????????? n ???????????????????????????????????????????????§??????????????????????????????????????±?????\???????????°??¨?????°????????????????????§??????CPU ????????????????????????????????????????????????????????????????????§ q ms?????????????????????????????¨???????????????????????????????????????????????????q ms ????????????????????£????????????????????????????????????????????????????????°?????????????????????????????????????°?????§??????????CPU ????¬??????????????????????????????????????????????

????????°????????????????????? 100 ms??¨???????¬??????????????????????????????\?????????????????????

A(150) - B(80) - C(200) - D(200)
?????????????????? A ??? 100 ms ??????????????????????????????????????? 50 ms ?????????????????\??????????°?????§????????????????

B(80) - C(200) - D(200) - A(50)
?¬???????????????? B ??? 80 ms ??????????????????????????? 180 ms ??§?????????????????\??????????????????????????????

C(200) - D(200) - A(50)
?¬???????????????? C ??? 100 ms ?????????????????????????????????????????? 100 ms ??????????????????????°?????§????????????????

D(200) - A(50) - C(100)
????????????????????¨??????????????????????????????????????§???????????°??????????????????

??????????????????????????±?????\???????????°???????????\??¬????????????????????°????????????????????????????????????

??\???
??\????????¢????????\??????????????§??????

n q
name1 time1
name2 time2
...
namen timen
????????????????????????????????°?????¨?????´??° n ??¨????????????????????¨?????´??° q ?????????????????????????????§?????????????????????

?¶???? n ?????§??????????????????????????±?????????????????????????????????????????? namei ??¨??´??° timei ????????????????????§???????????????????????????

??????
??????????????????????????????????????????????????????????????¨???????????????????????§????????£???????????????????????????????????????

??¶?´?
1 ??? n ??? 100,000
1 ??? q ??? 1,000
1 ??? timei ??? 50,000
1 ??? ????????? namei ????????? ??? 10
1 ??? timei ???????¨? ??? 1,000,000
??\?????? 1
5 100
p1 150
p2 80
p3 200
p4 350
p5 20
????????? 1
p2 180
p5 400
p1 450
p3 550
p4 800
 */

#include <iostream>
#include <sstream>
#include <queue>
#include <algorithm>

class Process {
private:
  std::string name;
  unsigned short time;
  unsigned int elaps;
  bool isRunning;
public:
  void setName(std::string Name) {
    name = Name;
  };

  std::string getName() {
    return name;
  };

  unsigned short getTime() {
    return time;
  };

  unsigned short proceed(unsigned short q) {
    unsigned short consumption = std::min(time, q);
    time -= std::min(time, q);
    if (time) {
      isRunning = true;
    } else {
      isRunning = false;
    }
    return consumption;
  };

  void setTime(unsigned short Time) {
    time = Time;
  };
  void updateElaps(unsigned int Time) {
    elaps = Time;
  };
  unsigned int getElaps() {
    return elaps;
  }
  bool checkRunning() {
    return isRunning;
  };
  Process(std::string Name, unsigned short Time)
  : elaps(0)
  , isRunning(true)

  {
    setName(Name);
    setTime(Time);
  };
};

int main(int argc, char const *argv[]) {
  std::string Param;
  std::istringstream iss;
  unsigned short n, q;
  std::queue<Process*> Queue;

  getline(std::cin, Param);
  iss.str(Param);
  iss >> n >> q;
  iss.clear();
  for (size_t i = 0; i < n; i++) {
    std::string name;
    unsigned short time;
    getline(std::cin, Param);
    iss.str(Param);
    iss >> name >> time;
    iss.clear();
    auto p = new Process(name, time);
    Queue.push(p);
  }
  unsigned int consumption = 0;
  while (!Queue.empty()) {
    auto p = Queue.front();
    Queue.pop();
    consumption += p->proceed(q);
    p->updateElaps(consumption);

    if (p->checkRunning()) {
      Queue.push(p);
    } else {
      std::cout << p->getName() << " " << p->getElaps() << std::endl;
      delete p;
    }
  }

  return 0;
}

Measured memory_bytes: 7304