#include<bits/stdc++.h>
using namespace std;
const int MAXN=100;
int n;
double a[MAXN+5][MAXN+5];
void gauss(int x)
{
for(int i=0;i<x;i++)
{
int row=i;
for(int j=i;j<x;j++)
{
if(fabs(a[row][i])<fabs(a[j][i]))
{
row=j;
}
if(row!=i)
{
swap(a[row],a[i]);
}
double div1=a[i][i];
for(int j=0;j<=x;j++)
{
a[i][j]/=div1;
}
for(int j=i+1;j<x;j++)
{
double div2=a[j][i];
for(int k=0;k<=x;k++)
{
a[j][k]-=a[i][k]*div2;
}
}
}
}
for(int i=x-1;i>=0;i--)
{
for(int j=i-1;j>=0;j--)
{
a[j][x]-=a[j][i]*a[i][x];
a[j][i]=0;
}
}
}
int main()
{
cin>>n;
for(int i=0;i<n;i++)
{
for(int j=0;j<=n;j++)
{
cin>>a[i][j];
}
}
gauss(n);
for(int i=0;i<n;i++)
{
bool flag=1;
for(int j=0;j<n;j++)
{
if(fabs(a[i][j])>1e-8)
{
flag=0;
}
}
if(flag)
{
cout<<"No Solution";
return 0;
}
}
for(int i=0;i<n;i++)
{
cout<<fixed<<setprecision(2)<<a[i][n]<<'\n';
}
return 0;
}