#include <bits/stdc++.h>
using namespace std;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
const int NMAX=100, inf=1e9;
int dist[NMAX+5][NMAX+5];
int main(){
int n;
fin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
int val;
fin>>val;
dist[i][j]=val;
if(dist[i][j]==0 and i!=j){
dist[i][j]=inf;
}
}
}
for(int k=1;k<=n;k++){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
dist[i][j]=min(dist[i][j], dist[i][k]+dist[k][j]);
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(dist[i][j]==inf){
fout<<0<<' ';
}else{
fout<<dist[i][j]<<' ';
}
}
fout<<'\n';
}
}