#include <bits/stdc++.h>
using namespace std;
const int maxn = 300001;
int N, M, col[maxn << 2], ql, qr, v, x;
void update(int o, int L, int R) {
  if (col[o]) {
    return;
  }
  if (ql <= L && R <= qr) {
    col[o] = v;
    return;
  }
  int M = (L + R) >> 1;
  if (ql <= M) update(o << 1, L, M);
  if (M < qr) update(o << 1 | 1, M + 1, R);
}
void query(int &ans, int o, int L, int R) {
  if (col[o]) {
    ans = col[o];
  }
  if (L == R) {
    return;
  }
  int M = (L + R) >> 1;
  if (x <= M) {
    query(ans, o << 1, L, M);
    return;
  }
  query(ans, o << 1 | 1, M + 1, R);
}
int main() {
  scanf("%d%d", &N, &M);
  for (int i = 1; i <= M; i++) {
    int l, r;
    scanf("%d%d%d", &l, &r, &v);
    if (l != v) {
      ql = l;
      qr = v - 1;
      update(1, 1, N);
    }
    if (r != v) {
      ql = v + 1;
      qr = r;
      update(1, 1, N);
    }
  }
  for (int i = 1; i <= N; i++) {
    int ans = 0;
    x = i;
    query(ans, 1, 1, N);
    printf("%d%c", ans, i == N ? '\n' : ' ');
  }
  return 0;
}
