#include<bits/stdc++.h>
using namespace std;
int m,n,flag[52],bj[52],s,r;
double matrix_up[52][52],ans_up[52];
void input()
{
cin>>m;
n=m+1;
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
cin>>matrix_up[i][j];
}
void cut(int one,int two,int list)
{
if(!two)
{
for(int i=list+1;i<=n;i++)
matrix_up[one][i]/=matrix_up[one][list];
matrix_up[one][list]=1;
return;
}
for(int i=list+1;i<=n;i++)
{
matrix_up[one][i]/=matrix_up[one][list];
matrix_up[two][i]/=matrix_up[two][list];
}
matrix_up[one][list]=1;
matrix_up[two][list]=1;
for(int i=1;i<=n;i++)
{
matrix_up[two][i]=matrix_up[two][i]-matrix_up[one][i];
}
}
void work()
{
for(int list=1;list<=n-1;list++)
{
short one=0,two=0;
for(int i=1;i<=m;i++)
{
if(one && matrix_up[i][list]!=0 && !bj[i])
{
two=i;
cut(one,two,list);
}
if(matrix_up[i][list]!=0 && !bj[i])
{
one=i;
cut(one,0,list);
flag[list]=i;//搞个指针
bj[i]=1;//这一行是否处理过
}
}
}
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
if(matrix_up[i][j])
{
r++;
if(j!=n)
s++;
break;
}
}
}
ans_up[n]=-1;//bi赋值便于运算
for(int list=n-1;list>=1;list--)
{
for(int i=list+1;i<=n;i++)
{
ans_up[list]-=matrix_up[flag[list]][i]*ans_up[i];
}
}
}
void output()
{
if(s<r)
{
cout<<"-1";
return ;
}
else if(r<n-1)
{
cout<<"0";
return;
}
for(int i=1;i<=m;i++)
{
cout<<"x"<<i<<"=";
printf("%.2lf\n",ans_up[i]);
}
}
int main()
{
input();
work();
output();
return 0;
}