#include <bits/stdc++.h>
using namespace std;
const long long mod = 1000000007ll;
struct data {
  int id;
  long long start, bur;
  data(int i, long long a, long long b) {
    id = i;
    start = a;
    bur = b;
  }
};
long long res[300005];
long long now;
int k;
queue<data> qu;
void addd(data a) {
  while (!qu.empty()) {
    long long tot = max(now, qu.front().start) + qu.front().bur;
    if (tot > a.start) break;
    now = tot;
    res[qu.front().id] = now;
    qu.pop();
  }
  if (qu.size() <= k) {
    qu.push(a);
  } else {
    res[a.id] = -1;
  }
}
int main() {
  int n;
  scanf("%d %d", &n, &k);
  for (int i = 1; i <= n; i++) {
    long long st, bu;
    scanf("%lld %lld", &st, &bu);
    addd(data(i, st, bu));
  }
  while (!qu.empty()) {
    long long tot = max(now, qu.front().start) + qu.front().bur;
    now = tot;
    res[qu.front().id] = now;
    qu.pop();
  }
  for (int i = 1; i <= n; i++) {
    printf("%lld\n", res[i]);
  }
  return 0;
}
