#include using namespace std; int n, m, p, q, r; vector > adj[101]; int indegree[101]; int indegree2[101]; long long int dist[101]; int arr[101]; int main(void) { cin.tie(0); ios::sync_with_stdio(false); cin >> n; cin >> m; for (int i = 0; i < m; i++) { cin >> p >> q >> r; adj[r].push_back(make_pair(p, q)); indegree[p]++; indegree2[r]++; } queue que; dist[n] = 1; que.push(n); while (!que.empty()) { int now = que.front(); que.pop(); for (auto it : adj[now]) { int next = it.first; int cost = it.second; dist[next] += (cost * dist[now]); indegree[next]--; if (indegree[next] == 0) { que.push(next); } } } for (int i = 1; i < n; i++) { if (indegree2[i] == 0) { cout << dist[i] << '\n'; } else { cout << 0 << '\n'; } } return 0; }