#include #include #include #include #define FORR(i,b,e) for(int i=(b);i<(int)(e);++i) #define FOR(i,e) FORR(i,0,e) #define dump(var) cerr << #var ": " << var << "\n" #define dumpc(con) for(auto& e: con) cerr << e << " "; cerr<<"\n" typedef long long ll; typedef unsigned long long ull; const double EPS = 1e-6; const int d4[] = {0, -1, 0, 1, 0}; using namespace std; map>> rcp; vector m; void search(int n, ll q) { if (rcp[n].size()) { for (auto &p: rcp[n]) { search(p.first, q * p.second); } } else { m[n] += q; } } int main() { cin.tie(0); ios::sync_with_stdio(false); int N, M; cin >> N >> M; m.resize(N); FOR(i, M) { int P, Q, R; cin >> P >> Q >> R; rcp[R].push_back(make_pair(P, Q)); } search(N, 1); FORR(i, 1, N) cout << m[i] << '\n'; return 0; }