#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream in("royfloyd.in");
ofstream out("royfloyd.out");
int n;
int mat[101][101];
void readit()
{
in>>n;
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++) in>>mat[i][j];
}
void RF()
{
for(int k=1; k<=n; k++)
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
if(i!=j && mat[i][k] && mat[k][j])
mat[i][j]=min(mat[i][j], mat[i][k]+mat[k][j]);
}
void coutmat()
{
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++) out<<mat[i][j]<<' ';
out<<'\n';
}
}
int main()
{
readit();
RF();
coutmat();
return 0;
}