#include <bits/stdc++.h>
using namespace std;
const int MAXN = 30e5 + 1;
int t[4 * MAXN];
bool marked[4 * MAXN];
int n, m;
void push(int v) {
  if (marked[v]) {
    if (t[v * 2] == 0) t[v * 2] = t[v];
    if (t[v * 2 + 1] == 0) t[v * 2 + 1] = t[v];
    marked[v * 2] = marked[v * 2 + 1] = true;
    marked[v] = false;
  }
}
void update(int v, int tl, int tr, int l, int r, int x) {
  if (l > r) return;
  if (l == tl && tr == r) {
    if (t[v] == 0) t[v] = x;
    marked[v] = true;
  } else {
    push(v);
    int tm = (tl + tr) / 2;
    update(v * 2, tl, tm, l, min(r, tm), x);
    update(v * 2 + 1, tm + 1, tr, max(l, tm + 1), r, x);
  }
}
int get(int v, int tl, int tr, int pos) {
  if (tl == tr) return t[v];
  push(v);
  int tm = (tr + tl) / 2;
  if (pos <= tm)
    return get(v * 2, tl, tm, pos);
  else
    return get(v * 2 + 1, tm + 1, tr, pos);
}
int main() {
  int l, r, x;
  scanf("%d%d", &n, &m);
  while (m--) {
    scanf("%d%d%d", &l, &r, &x);
    update(1, 1, n, l, x - 1, x);
    update(1, 1, n, x + 1, r, x);
  }
  for (int i = 0; i < n; i++) {
    int res = get(1, 1, n, i + 1);
    if (res == i + 1)
      printf("0 ");
    else {
      printf("%d ", res);
    }
  }
}
