from collections import defaultdict import sys input = sys.stdin.buffer.readline sys.setrecursionlimit(10 ** 7) class UF_tree: def __init__(self, n): self.root = [-1] * (n + 1) def find(self, x): stack = [] while self.root[x] > 0: stack.append(x) x = self.root[x] for i in stack: self.root[i] = x return x def isSame(self, x, y): return self.find(x) == self.find(y) def unite(self, x, y): x = self.find(x) y = self.find(y) if x == y: return False if x < y: x, y = y, x self.root[x] += self.root[y] self.root[y] = x return True def size(self, x): return -self.root[self.find(x)] def main(): d = defaultdict(list) val = set() N, Q = map(int, input().split()) for _ in range(Q): L, R, B = map(int, input().split()) val.add(B) d[B].append((L, R)) ans = [-1] * N uf = UF_tree(N) for v in sorted(val, reverse=True): for l, r in d[v]: l -= 1 l = uf.find(l) if l < r: if ans[l] < 0: ans[l] = v else: print(-1) return for l, r in d[v]: l -= 1 l = uf.find(l) while l < r: uf.unite(l, l+1) l = uf.find(l) for i in range(N): if ans[i] < 0: ans[i] = 10 ** 9 print(*ans) return main()