N = int(input()) M = int(input()) lsg = [[] for i in range(N)] root = [True]*(N) for i in range(M): p,q,r = map(int,input().split()) p -= 1 r -= 1 lsg[p].append((r,q)) root[r] = False dp = [0]*(N) dp[N-1] = 1 def dfs(k): if k == N-1: return 1 if dp[k] != 0: return dp[k] cnt = 0 for node,cost in lsg[k]: cnt += cost*dfs(node) dp[k] = cnt return cnt for j in range(N-1): if root[j]: print(dfs(j)) else: print(0)