#include #include #include #include int main() { using namespace std; int n, m; cin >> n >> m; vector buy(n, true); vector>> g(n); atcoder::scc_graph scc(n); while (m--) { int p, q, r; cin >> p >> q >> r; g[r - 1].emplace_back(p - 1, q); scc.add_edge(r - 1, p - 1); buy[r - 1] = false; } vector need(n, 0); need[n - 1] = 1; for (auto group : scc.scc()) { int v = group[0]; for (auto [nv, w] : g[v]) { need[nv] += need[v] * w; } } for (int v = 0; v < n - 1; v++) { cout << (buy[v] ? need[v] : 0) << endl; } }