program gaosi;
const maxn=300;
var i,j,k,l,m,n:longint;
a:array[1..maxn,1..maxn] of double;
ur,uc:array[1..maxn] of boolean;
row,col:array[1..maxn] of longint;
x:array[1..maxn] of double;
procedure enter;
begin
read(n);
for i:=1 to n do
for j:=1 to n+1 do
read(a[i,j]);
end;
procedure main;
var i,j,k:longint;
pivot,tmp:double;
begin
for k:=1 to n do
begin
pivot:=0;
for i:=1 to n do
for j:=1 to n do
if not ur[i] then
if not uc[j] then
if a[i,j]>pivot then
begin
pivot:=a[i,j];
row[k]:=i;
col[k]:=j;
end;
if pivot=0 then
begin
writeln('Many Answers!');
halt;
end;
ur[row[k]]:=true;
uc[col[k]]:=true;
for i:=1 to n+1 do
a[row[k],i]:=a[row[k],i]/pivot;
for i:=1 to n do if i<>row[k] then
begin
tmp:=a[i,col[k]];
for j:=1 to n+1 do
a[i,j]:=a[i,j]-tmp*a[row[k],j];
end;
end;
for i:=1 to n do
x[col[i]]:=a[row[i],n+1];
end;
procedure print;
var i:longint;
begin
for i:=1 to n do writeln('x',i,'=',x[i]:0:4);
end;
begin
enter;
main;
print;
end.
const maxn=300;
var i,j,k,l,m,n:longint;
a:array[1..maxn,1..maxn] of double;
ur,uc:array[1..maxn] of boolean;
row,col:array[1..maxn] of longint;
x:array[1..maxn] of double;
procedure enter;
begin
read(n);
for i:=1 to n do
for j:=1 to n+1 do
read(a[i,j]);
end;
procedure main;
var i,j,k:longint;
pivot,tmp:double;
begin
for k:=1 to n do
begin
pivot:=0;
for i:=1 to n do
for j:=1 to n do
if not ur[i] then
if not uc[j] then
if a[i,j]>pivot then
begin
pivot:=a[i,j];
row[k]:=i;
col[k]:=j;
end;
if pivot=0 then
begin
writeln('Many Answers!');
halt;
end;
ur[row[k]]:=true;
uc[col[k]]:=true;
for i:=1 to n+1 do
a[row[k],i]:=a[row[k],i]/pivot;
for i:=1 to n do if i<>row[k] then
begin
tmp:=a[i,col[k]];
for j:=1 to n+1 do
a[i,j]:=a[i,j]-tmp*a[row[k],j];
end;
end;
for i:=1 to n do
x[col[i]]:=a[row[i],n+1];
end;
procedure print;
var i:longint;
begin
for i:=1 to n do writeln('x',i,'=',x[i]:0:4);
end;
begin
enter;
main;
print;
end.