1. #include <cstdio>
    2. #include <algorithm>
    3. #include <cstring>
    4. #include <cstdlib>
    5. #include <iostream>
    6. #define int long long
    7. using namespace std;
    8. const int N = 200;
    9. int Map[N][N],Sum[N][N];
    10. signed main()
    11. {
    12. #ifdef DMYTXDY
    13. freopen("data.in","r",stdin);
    14. #endif
    15. int n,m;cin>>n>>m;
    16. for(int i=1;i<=n;++i){
    17. for(int j=1;j<=n;++j)
    18. Map[i][j] = 1e9;
    19. }
    20. for(int i=1;i<=m;++i){
    21. int a,b,c;
    22. cin>>a>>b>>c;
    23. Map[a][b]=Map[b][a]=c;
    24. Sum[a][b]=Sum[b][a]=1;
    25. }
    26. for(int i=1;i<=n;++i) Map[i][i] = 0;
    27. for(int k=1;k<=n;++k){
    28. for(int i=1;i<=n;++i){
    29. for(int j=1;j<=n;++j){
    30. if(i==j || j == k || i==k) continue;
    31. if(Map[i][k] + Map[k][j] == Map[i][j]){
    32. Sum[i][j] += Sum[i][k] * Sum[k][j];
    33. }
    34. if(Map[i][k] + Map[k][j] < Map[i][j]){
    35. Map[i][j] = Map[i][k] + Map[k][j];
    36. Sum[i][j] = Sum[i][k] * Sum[k][j];
    37. }
    38. }
    39. }
    40. }
    41. // for(int i=1;i<=n;++i){
    42. // for(int j=1;j<=n;++j){
    43. // printf("%d -> %d : %d\n",i,j,Sum[i][j]);
    44. // }
    45. // }
    46. // return 0;
    47. for(int k=1;k<=n;++k){
    48. double ans = 0;
    49. for(int j=1;j<=n;++j){
    50. if(j==k) continue;
    51. for(int i=1;i<=n;++i){
    52. if(k==i) continue;
    53. if(i==j) continue;
    54. if(Map[i][j] == Map[i][k]+Map[k][j]){
    55. ans += 1.0*Sum[i][k]*Sum[k][j]/Sum[i][j];
    56. }
    57. }
    58. }
    59. printf("%.3lf\n",ans);
    60. }
    61. return 0;
    62. }