#include <bits/stdc++.h>
int main() {
  std::queue<std::pair<long long int, long long int> > query_list;
  int n, b;
  long long int t, d;
  std::pair<long long int, long long int> query;
  std::cin >> n;
  std::cin >> b;
  long long int tt = 0;
  for (int i = 0; i < n; i++) {
    std::cin >> t >> d;
    if (tt < t) {
      while (tt < t) {
        if (query_list.empty()) {
          tt = t;
        } else {
          query = query_list.front();
          query_list.pop();
          if (query.first == -1) {
            b--;
            std::cout << "-1 ";
          } else {
            tt = tt + query.second;
            std::cout << tt << " ";
          }
        }
      }
    } else if (tt == t && query_list.size() == b) {
      while (tt == t && query_list.size() == b) {
        query = query_list.front();
        query_list.pop();
        if (query.first == -1) {
          std::cout << "-1 ";
          b--;
        } else {
          tt = tt + query.second;
          std::cout << tt << " ";
        }
      }
    }
    if (query_list.size() < b) {
      query_list.push(std::make_pair(t, d));
    } else {
      query_list.push(std::make_pair(-1, -1));
      b++;
    }
  }
  while (!query_list.empty()) {
    query = query_list.front();
    query_list.pop();
    if (tt < query.first) {
      tt = query.first;
    }
    if (query.first == -1) {
      std::cout << "-1 ";
    } else {
      tt = tt + query.second;
      std::cout << tt << " ";
    }
  }
  return 0;
}
