#include <stdio.h>
int main(){
FILE* in = fopen("royfloyd.in","r");
FILE* out = fopen("royfloyd.out","w");
int n, i = 0, j = 0, k=0;
fscanf(in,"%d",&n);
int graf[n][n];
for(i=0;i<n;i++){
for(j=0;j<n;j++){
fscanf(in,"%d",&graf[i][j]);
}
}
for(k=0;k<n;k++){
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(graf[i][k] && graf[k][j] && (graf[i][j] > graf[i][k] + graf[k][j] || !graf[i][j]) && i!=j){
graf[i][j] = graf[i][k] + graf[k][j];
}
}
}
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
fprintf(out,"%d ",graf[i][j]);
}
fprintf(out,"\n");
}
return 0;
}