#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#define rep(i,j,k) for(register int i(j);i<=k;++i)
#define drp(i,j,k) for(register int i(j);i>=k;--i)
#define bug cout<<"~~~~~~~~~~~~~"<<'\n';
#define bugout(x) cout<<x<<'\n';
typedef long long lxl;
template<typename T>
inline T max(T &a, T &b) {
return a > b ? a : b;
}
template<typename T>
inline T min(T &a, T &b) {
return a < b ? a : b;
}
const int N = 1e3 + 79;
double B[N][N];
int n;
const double eps = 1e-8;
int main() {
using std::cin;
using std::cout;
cin >> n;
rep(i, 1, n) {
rep(j, 1, n + 1) {
cin >> B[i][j];
}
}
rep(i, 1, n) {
int pos = i;
rep(j, i, n) {
if(fabs(B[j][i] - B[pos][i]) <= eps) pos = j;
}
rep(j, 1, n + 1) {
double t = B[i][j];
B[i][j] = B[pos][j];
B[pos][j] = t;
// std::swap(B[i][j], B[pos][j]);
}
if(fabs(B[i][i]) <= eps) {
puts("No Solution\n");
return 0;
}
rep(j, i + 1, n + 1) B[i][j] /= B[i][i];
rep(j, 1, n) {
if(i != j)
rep(k, i + 1, n + 1) B[j][k] -= B[j][i] * B[i][k];
}
}
rep(i, 1, n) printf("%.2lf\n", B[i][n]);
return 0;
}
过不了样例。。