#include "bits/stdc++.h" using namespace std; #define rep(i,n) for(int (i)=0;(i)<(int)(n);++(i)) #define rer(i,l,u) for(int (i)=(int)(l);(i)<=(int)(u);++(i)) #define reu(i,l,u) for(int (i)=(int)(l);(i)<(int)(u);++(i)) static const int INF = 0x3f3f3f3f; static const long long INFL = 0x3f3f3f3f3f3f3f3fLL; typedef vector vi; typedef pair pii; typedef vector > vpii; typedef long long ll; template static void amin(T &x, U y) { if (y < x) x = y; } template static void amax(T &x, U y) { if (x < y) x = y; } int main() { int n; int m; while (~scanf("%d%d", &n, &m)) { vector > > gw(n); for (int i = 0; i < m; ++ i) { int u, v, w; scanf("%d%d%d", &u, &v, &w); gw[u].push_back(make_pair(v, w)); } vector invdeg(n); rep(i, n) { int sum = 0; for (auto &&e : gw[i]) sum += e.second; invdeg[i] = 1. / sum; } vector cur(n, 10.0), nxt; rep(k, 100) { nxt.assign(n, 0.); rep(i, n) { double x = cur[i] * invdeg[i]; if (x < 1e-99) continue; for (auto &&e : gw[i]) nxt[e.first] += e.second * x; } cur.swap(nxt); } for (int i = 0; i < (int)cur.size(); ++ i) printf("%.6f\n", cur[i]); } return 0; }