#include<bits/stdc++.h>
#define double long double
using namespace std;
struct sign{
double block[60][60];
};
sign ask;
int n;
double ans[60];
signed main(){
cin>>n;
bool flag=0;
for(int i=1;i<=n;++i)
for(int j=1;j<=n+1;++j)
cin>>ask.block[i][j];
for(int i=1;i<=n;++i){
double max=abs(ask.block[1][i]);
int id=1;
for(int j=2;j<=n;++j)if(abs(ask.block[j][i])>max){max=abs(ask.block[j][i]);id=j;}
if(max==0)flag=1;
if(ask.block[id][i]<0)max*=-1.00000;
max*=1.000000;
for(int j=1;j<=n+1;++j)ask.block[id][j]=ask.block[id][j]*1.0000000/max;
for(int j=1;j<=n;++j){
if(j==id)continue;
double up=ask.block[j][i];
for(int k=1;k<=n+1;++k)ask.block[j][k]-=ask.block[id][k]*up;
}
}
for(int i=1;i<=n;++i){
bool fft=0;
for(int j=1;j<=n;++j){
if(ask.block[j][i]==1){
ans[i]=ask.block[j][n+1];
if(fft){
cout<<-1;
return 0;
}
fft=1;
}
}
}
if(flag){
cout<<0;
return 0;
}
for(int i=1;i<=n;++i)cout<<'x'<<i<<'='<<fixed<<setprecision(2)<<ans[i]<<'\n';
return 0;
}