#include<stdio.h>
int a[100][100];
int main()
{
int n, m, k, i, j,u,v,w;
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] = 999999;
}
}
for (i = 0; i < m; i++)
{
scanf("%d %d %d", &u, &v, &w);
a[u][v] =a[v][u]=w;
}
for (k = 1; k <= n; k++)
for (i = 1; i <= n; i++)
for (j = 1; j <= n; j++)
if ((i != j) && (i != k) && (j != k) && (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;
}