#include using namespace std; using ll = long long; using vi = vector; using vb = vector; using vd = vector; using vl = vector; using vvi = vector; using vvb = vector; using vvd = vector; using vvl = vector; #define REP(i,n) for(ll i=0; i<(n); ++i) ll dfs(const vector>> & g, ll id, ll mult) { if (g[id].empty()) return mult; ll num = 0; for (auto&& e : g[id]) num += dfs(g, e.first, mult*e.second); return num; } int main() { // cin.tie(0); // ios_base::sync_with_stdio(false); cout << fixed << setprecision(5); ll n,m; cin >> n >> m; vector>> g(n); vb purchases_b(n, true); REP(i, m) { ll p, q, r; cin >> p >> q >> r; g[p-1].push_back({ r-1, q }); purchases_b[r-1] = false; } vl purchases_id; REP(i, n) if (purchases_b[i]) purchases_id.push_back(i); vl purchases_num(n, 0); REP(i, purchases_id.size()) purchases_num[purchases_id[i]] = dfs(g, purchases_id[i], 1); REP(i, n - 1) cout << purchases_num[i] << endl; return 0; }