#include<bits/stdc++.h>
using namespace std;
int a[105][105],dp[105][105];
int main(){
int n,m,x,y,z;
cin>>n>>m;
for(int i = 1;i <= n;i++){
for(int j = 1;j <= n;j++){
if(i != j){
a[i][j] = 0x3f3f3f3f;
}
}
}
for(int i = 0;i < m;i++){
cin>>x>>y>>z;
a[x][y] = z,a[y][x] = z;
}
for(int i = 1;i <= n;i++){
for(int j = 1;j <= n;j++){
for(int k = 1;k <= n;k++){
a[i][j] = min(a[i][j],a[i][k] + a[k][j]);
}
}
}
for(int i = 1;i <= n;i++){
for(int j = 1;j <= n;j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}