#include <cstdio>#include <algorithm>#include <cstring>#include <cstdlib>#include <iostream>#define int long long using namespace std;const int N = 200;int Map[N][N],Sum[N][N];signed main(){#ifdef DMYTXDY freopen("data.in","r",stdin);#endif int n,m;cin>>n>>m; for(int i=1;i<=n;++i){ for(int j=1;j<=n;++j) Map[i][j] = 1e9; } for(int i=1;i<=m;++i){ int a,b,c; cin>>a>>b>>c; Map[a][b]=Map[b][a]=c; Sum[a][b]=Sum[b][a]=1; } for(int i=1;i<=n;++i) Map[i][i] = 0; for(int k=1;k<=n;++k){ for(int i=1;i<=n;++i){ for(int j=1;j<=n;++j){ if(i==j || j == k || i==k) continue; if(Map[i][k] + Map[k][j] == Map[i][j]){ Sum[i][j] += Sum[i][k] * Sum[k][j]; } if(Map[i][k] + Map[k][j] < Map[i][j]){ Map[i][j] = Map[i][k] + Map[k][j]; Sum[i][j] = Sum[i][k] * Sum[k][j]; } } } } // for(int i=1;i<=n;++i){ // for(int j=1;j<=n;++j){ // printf("%d -> %d : %d\n",i,j,Sum[i][j]); // } // } // return 0; for(int k=1;k<=n;++k){ double ans = 0; for(int j=1;j<=n;++j){ if(j==k) continue; for(int i=1;i<=n;++i){ if(k==i) continue; if(i==j) continue; if(Map[i][j] == Map[i][k]+Map[k][j]){ ans += 1.0*Sum[i][k]*Sum[k][j]/Sum[i][j]; } } } printf("%.3lf\n",ans); } return 0;}