#include<bits/stdc++.h>
using namespace std;
const int maxn=1e2+5;
const int Inf=1e9;
int n;
int dis[maxn][maxn];
void clear()
{
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
dis[i][j];
}
int main()
{
cin>>n;
clear();
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
{
int a;
cin>>a;
dis[i][j]=a;
}
}
for(int k=1; k<=n; k++)
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
{
if(i == j)
cout<<0<<' ';
else if(dis[i][j] >= 1)
cout<<1<<' ';
else
cout<<0<<' ';
}
cout<<endl;
}
return 0;
}