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;
}