#include <bits/stdc++.h>
#define int long long
using namespace std;
constexpr int MOD = 1e9 + 7;
inline int qpow(int b,int p)
{
int res = 1;
while(p)
{
if(p & 1)
res = res * b % MOD;
b = b * b % MOD;
p >>= 1;
}
return res;
}
#define inv(x) qpow(x,MOD - 2)
int n;
int val[824][424];
signed main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
cin >> n;
for(int i = 1;i <= n;i++)
{
val[i][n + i] = 1;
for(int j = 1;j <= n;j++)
cin >> val[i][j];
}
for(int i = 1;i <= n;i++)
{
int ptr = i;
for(int j = i;j <= n;j++)
{
if(abs(val[j][i]) > abs(val[ptr][i]))
ptr = j;
}
for(int j = 1;j <= (n << 1);j++)
swap(val[i][j],val[ptr][j]);
if(val[i][i] == 0)
{
cout << "No Solution";
return 0;
}
int v = inv(val[i][i]);
for(int j = 1;j <= (n << 1);j++)
val[i][j] = (val[i][j] * v) % MOD;
for(int j = 1;j <= n;j++)
{
if(i == j)
continue;
int p = val[j][i];
for(int k = 1;k <= (n << 1);k++)
val[j][k] = ((val[j][k] - p * val[i][k] % MOD) % MOD + MOD) % MOD;
}
}
for(int i = 1;i <= n;i++)
{
for(int j = n + 1;j <= (n << 1);j++)
cout << val[i][j] << " ";
cout << "\n";
}
}