#include<stdio.h>
#define inf 10000
#pragma warning(disable:4996)
using namespace std;
int main() {
freopen("royfloyd.in", "r", stdin);
freopen("royfloyd.out", "w", stdout);
int N, pond[110][110], mat_min[110][110];
scanf("%d", &N);
for (int i = 1; i <= N; i++) {
for (int j = 1; j <= N; j++)
{
scanf("%d", &pond[i][j]);
if (!pond[i][j]) pond[i][j] = inf;
}
pond[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 (pond[i][j] > pond[i][k] + pond[k][j])
pond[i][j] = pond[i][k] + pond[k][j];
for (int i = 1; i <= N; i++) {
for (int j = 1; j <= N; j++)
printf("%d ", pond[i][j]);
printf("\n");
}
return 0;
}