#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef _MSC_VER #include #endif #define FOR(i, a, b) for(int i = (a); i < (int)(b); ++i) #define rep(i, n) FOR(i, 0, n) #define ALL(v) v.begin(), v.end() #define REV(v) v.rbegin(), v.rend() #define MEMSET(v, s) memset(v, s, sizeof(v)) #define UNIQUE(v) (v).erase(unique(ALL(v)), (v).end()) #define MP make_pair #define MT make_tuple #define int long long using namespace std; typedef long long ll; typedef pair P; const int N = 110; vector

G[N]; vector dp[N]; int n, m; vector operator+(const vector &a, const vector &b){ vector res(n); rep(i, n) res[i] = a[i] + b[i]; return res; } vector operator*(const vector &a, const int &b){ vector res(n); rep(i, n) res[i] = a[i]*b; return res; } vector rec(int i){ auto &res = dp[i]; if (!res.empty()) return res; res.assign(n, 0); for (auto e : G[i]){ res = res + rec(e.first)*e.second; } if (G[i].empty()) res[i] = 1; return res; } signed main(){ cin.tie(0); ios::sync_with_stdio(false); cin >> n >> m; rep(i, m){ int p, q, r; cin >> p >> q >> r; G[r - 1].push_back(MP(p - 1, q)); } auto ans = rec(n - 1); rep(i, n - 1) cout << ans[i] << endl; return 0; }