P1013
#include <bits/stdc++.h>
const int N = 510;
int n;
int d[N][N];
int main(void) {
scanf("%d", &n);
for (int i = 1; i <= n; ++ i) {
for (int j = 1; j <= n; ++ j) {
scanf("%d", &d[i][j]);
}
}
for (int k = 1; k <= n; ++ k) {
for (int i = 1; i <= n; ++ i) {
for (int j = 1; j <= n; ++ j) {
d[i][j] = std::min(d[i][j], d[i][k] + d[k][j]);
}
}
}
for (int i = 1; i <= n; ++ i, puts("")) {
for (int j = 1; j <= n; ++ j) {
printf("%d ", d[i][j]);
}
}
return 0;
}