#include <bits/stdc++.h>
using namespace std;
int nex[300100];
int f[310000];
void init(int n) {
  for (int i = 0; i <= n + 3; i++) {
    f[i] = i;
    nex[i] = i + 1;
  }
}
int getf(int x) {
  if (f[x] != x) f[x] = getf(f[x]);
  return f[x];
}
void merge(int x, int y) {
  int t1 = getf(x);
  int t2 = getf(y);
  if (t1 != t2) {
    f[t1] = t2;
  }
}
int main() {
  int n, m;
  scanf("%d%d", &n, &m);
  init(n);
  int li, ri, xi;
  for (int i = 1; i <= m; i++) {
    scanf("%d%d%d", &li, &ri, &xi);
    int temp;
    for (int j = li; j <= ri; j = temp) {
      if (j < xi) {
        if (f[j] == j) f[j] = xi;
        temp = nex[j];
        nex[j] = nex[xi - 1];
      } else {
        if (f[j] == j) f[j] = xi;
        temp = nex[j];
        nex[j] = nex[ri];
      }
    }
    if (i == m) f[xi] = 0;
  }
  for (int i = 1; i <= n; i++) {
    printf("%d", f[i]);
    if (i != n) printf(" ");
  }
  printf("\n");
  return 0;
}
