#include <iostream>
#include <random>
#include <fstream>
#include <bitset>
#include <algorithm>
#include <climits>
using namespace std;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
int mat[105][105];
int main() {
int n;
fin>>n;
for (int i=1; i<=n; i++)
for (int j=1; j<=n; j++)
fin>>mat[i][j];
for (int i=1; i<=n; i++)
for (int j=1; j<=n; j++)
for (int k=1; k<=n; k++)
if (mat[i][k] and mat[k][j] and mat[i][k]+mat[k][j]<mat[i][j])
mat[i][j]=mat[i][k]+mat[k][j];
for (int i=1; i<=n; i++,fout<<"\n")
for (int j=1; j<=n; j++)
fout<<mat[i][j]<<' ';
return 0;
}
// num=10,/=11,*=12,-=13,+=14,enter=15,.=16,