#include using namespace std; using ll = long long; int main(void) { int N, M; cin >> N >> M; vector> G(N, vector(N, 0)); for(int i = 0; i < M; ++i) { int P, Q, R; cin >> P >> Q >> R; --P, --R; G[P][R] = Q; } vector vec; vector b(N, 0); { vector d(N, 0); for(int i = 0; i < N; ++i) for(int j = 0; j < N; ++j) if(G[i][j] != 0) ++d[j]; queue que; for(int i = 0; i < N; ++i) if(d[i] == 0) { que.push(i); b[i] = 1; } while(!que.empty()) { int v = que.front(); que.pop(); vec.push_back(v); for(int i = 0; i < N; ++i) if(G[v][i] != 0) if((--d[i]) == 0) que.push(i); } reverse(vec.begin(), vec.end()); } vector need(N, 0); need.back() = 1; for(auto x : vec) { for(int i = 0; i < N; ++i) need[i] += G[i][x] * need[x]; if(!b[x]) need[x] = 0; } for(int i = 0; i < N - 1; ++i) cout << need[i] << endl; return 0; }