#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
using namespace std;
#define inf 9999999999
const int maxn=110;
int a[maxn][maxn];
int main(){
int i,j,k,m,n;
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
if(i==j)a[i][j]=0;
else a[i][j]=inf;
}
}
while(m--){
int x,y,w;
scanf("%d%d%d",&x,&y,&w);
a[x][y]=w;
a[y][x]=w;
}
for(k=1;k<=n;k++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(a[i][j]>a[i][k]+a[k][j])
a[i][j]=a[i][k]+a[k][j];
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}