#include using namespace std; int main(){ int N; cin >> N; int M; cin >> M; vector>> E(N); for (int i = 0; i < M; i++){ int P, Q, R; cin >> P >> Q >> R; P--; R--; E[R].push_back(make_pair(P, Q)); } vector d(N, 0); for (int i = 0; i < N; i++){ for (auto P : E[i]){ d[P.first]++; } } vector d2 = d; queue Q; for (int i = 0; i < N; i++){ if (d[i] == 0){ Q.push(i); } } vector t; while (!Q.empty()){ int v = Q.front(); Q.pop(); t.push_back(v); for (auto P : E[v]){ int w = P.first; d[w]--; if (d[w] == 0){ Q.push(w); } } } vector ans(N, 0); ans[N - 1] = 1; for (int i = 0; i < N; i++){ for (auto P : E[t[i]]){ ans[P.first] += ans[t[i]] * P.second; } } for (int i = 0; i < N - 1; i++){ if (E[i].empty()){ cout << ans[i] << endl; } else { cout << 0 << endl; } } }