n = int(input()) m = int(input()) edges = [[] for i in range(n)] in_d = [0] * n out_d = [0] * n for i in range(m): p, r, q = list(map(int, input().split())) p -= 1 q -= 1 in_d[p] += 1 out_d[q] += 1 edges[q].append((p, r)) dp = [0] * n queue = [n - 1] dp[-1] = 1 while len(queue): u = queue.pop(0) for v, r in edges[u]: in_d[v] -= 1 dp[v] += dp[u] * r if in_d[v] == 0: queue.append(v) for i, c in enumerate(out_d): if c: dp[i] = 0 for x in dp[:n-1]: print(x)