#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=3e3+10,mod=1e9+7;
int a[N][N],n;
int Pow(int x,int n){
if(x==0)return 0;
if(n==0)return 1;
int a=Pow(x,n/2);
return a*a%mod*(n&1?x:1)%mod;
}
void print(){
for(int i=1;i<=n;i++){
for(int j=1;j<=2*n;j++)cout<<a[i][j]<<' ';
cout<<'\n';
}
}
void guess(){
for(int i=1;i<=n;i++){
int pos=i;
for(int j=i+1;j<=n;j++)if(a[j][i]>a[pos][i])pos=j;
if(!a[pos][i]){cout<<"No Solution";return ;}
if(i!=pos)swap(a[i],a[pos]);
int ks=Pow(a[i][i],mod-2);
for(int j=1;j<=n;j++){
if(j==i)continue;
int t=a[j][i]*ks%mod;
for(int k=1;k<=2*n;k++)a[j][k]=(a[j][k]-(a[i][k]*ks%mod)+mod)%mod;
}
for(int j=1;j<=2*n;j++)a[i][j]=a[i][j]*ks%mod;
}
for(int i=1;i<=n;i++){
for(int j=n+1;j<=2*n;j++)cout<<a[i][j]<<' ';
cout<<'\n';
}
return ;
}
signed main(){
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++)cin>>a[i][j];
a[i][n+i]=1;
}
guess();
return 0;
}