#include <bits/stdc++.h>
using namespace std;
int maxint = ~0U >> 1;
int flow, cost;
int pi[200001 + 1], v[200001 + 1];
int S, T;
struct etype {
  int t, c, u;
  etype* next;
  etype* pair;
  etype() { next = 0; }
  etype(int _t, int _c, int _u, etype* _n) {
    t = _t, c = _c, u = _u, next = _n;
  }
} * e[200001 + 1], *eb[200001 + 1], *Pe, *TEM[200001 + 1];
int aug(int w, int lim) {
  int t;
  v[w] = 1;
  if (w == T) {
    return lim;
  }
  for (etype*& i = e[w]; i; i = i->next)
    if (i->c && !v[i->t] && pi[w] == pi[i->t] + i->u)
      if (t = aug(i->t, min(lim, i->c))) return i->c -= t, i->pair->c += t, t;
  return 0;
}
bool fix() {
  int t = maxint;
  for (int i = S; i <= T; i++)
    if (v[i]) {
      for (etype* j = eb[i]; j; j = j->next)
        if (j->c && !v[j->t]) t = min(t, pi[j->t] + j->u - pi[i]);
    }
  if (t == maxint) return 0;
  for (int i = S; i <= T; i++)
    if (v[i]) e[i] = eb[i], pi[i] += t;
  return 1;
}
void addedge(int s, int t, int c, int u, int sp) {
  ++Pe;
  Pe = new etype(t, c, u, e[s]);
  e[s] = Pe;
  if (sp > 0) {
    TEM[sp] = e[s];
  }
  ++Pe;
  Pe = new etype(s, 0, -u, e[t]);
  e[t] = Pe;
  e[s]->pair = e[t];
  e[t]->pair = e[s];
}
vector<int> timeMark;
int A[1001], B[1001], PROF[1001];
int getMark(int x) {
  for (int i = 0; i < timeMark.size(); i++)
    if (timeMark[i] == x) return i + 2;
  return -1;
}
int main() {
  ios ::sync_with_stdio(false);
  Pe = new etype[1000001];
  memset(e, 0, sizeof(e));
  int N, K;
  cin >> N >> K;
  for (int i = 1; i <= N; i++) {
    cin >> A[i] >> B[i] >> PROF[i];
    B[i] += A[i];
    timeMark.push_back(A[i]);
    timeMark.push_back(B[i]);
  }
  sort(timeMark.begin(), timeMark.end());
  for (int i = 1; i <= N; i++) {
    A[i] = getMark(A[i]);
    B[i] = getMark(B[i]);
  }
  S = 1;
  T = 2 * N + 3;
  for (int i = 1; i < T - 1; i++) addedge(i, i + 1, N, 1000000, 0);
  addedge(T - 1, T, K, 0, 0);
  for (int i = 1; i <= N; i++) {
    addedge(A[i], B[i], 1, 1000000 * (B[i] - A[i]) - PROF[i], i);
  }
  flow = 0;
  memcpy(eb, e, sizeof(e));
  memset(pi, 0, sizeof(pi));
  do {
    do memset(v, 0, sizeof(v));
    while (aug(S, maxint));
  } while (fix());
  for (int i = 1; i <= N; i++) cout << (1 - TEM[i]->c) << (i == N ? "\n" : " ");
  return 0;
}
