#include<bits/stdc++.h>
using namespace std;
const int maxn=50;
int n;
double a[maxn][maxn];
double ans[maxn];
void swap_r(int q,int p)
{
for(int i=1;i<=n+1;i++){
double t=a[p][i];
a[p][i]=a[q][i];
a[q][i]=t;
}
}
void swap_c(int q,int p)
{
for(int i=1;i<=n+1;i++){
double t=a[i][p];
a[i][p]=a[i][q];
a[i][q]=t;
}
}
void gs()
{
for(int i=1;i<n;i++){
double m=fabs(a[i][i]);
int p=i,q=i;
for(int j=i+1;j<=n;j++){
for(int k=i;k<=n;k++){
if(fabs(a[j][k])>m){
m=fabs(a[j][k]);
p=j;
q=k;
}
}
}
if(p!=i){
swap_r(p,i);
}
if(q!=i){
swap_c(q,i);
}
for(int j=i+1;j<=n;j++){
if(a[i][j]==0.0){
continue;
}
double t=a[j][i]/a[i][i];
a[j][i]=0.0;
for(int k=i+1;k<=n+1;k++){
a[j][k]-=t*a[i][k];
}
}
}
}
void red()
{
for(int i=n;i>1;i--){
for(int j=i-1;j>=1;j--){
if(a[j][i]==0){
continue;
}
double t=a[j][i]/a[i][i];
a[j][i]=0.0;
for(int k=i+1;k<=n+1;k++){
a[j][k]-=t*a[i][k];
}
}
}
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++){
for(int j=1;j<=n+1;j++){
scanf("%lf",&a[i][j]);
}
}
for(int i=1;i<=n;i++){
a[n+1][i]=i;
}
gs();
red();
for(int i=1;i<=n;i++){
ans[(int)a[n+1][i]]=a[i][n+1]/a[i][i];
}
for(int i=1;i<=n;i++){
printf("x%d = %f\n",i,ans[i]);
}
return 0;
}