#include #include #include #include #include #include using namespace std; int main() { int n, m; cin >> n >> m; vector>> recipe(n, vector>()); vector> buy(n, vector(n, 0)); vector known(n, true); int p, q, r; for (int i = 0; i < m; i++) { cin >> p >> q >> r; p--; r--; recipe[r].emplace_back(make_pair(p, q)); known[r] = false; } for (int i = 0; i < n; i++) { if (known[i]) { buy[i][i] = 1; } } while (!known[n - 1]) { for (int i = 0; i < n; i++) { if (known[i]) { continue; } bool ok = true; for (auto p : recipe[i]) { if (!known[p.first]) { ok = false; break; } } if (!ok) { continue; } known[i] = true; for (auto q : recipe[i]) { for (int j = 0; j < n; j++) { buy[i][j] += 1LL * buy[q.first][j] * q.second; } } } } for (int i = 0; i < n - 1; i++) { cout << buy[n - 1][i] << endl; } return 0; }