#include<bits/stdc++.h>
using namespace std;
struct matrix{
double a[500][500];
int n;
void exchange1(int x,int y){
double k=a[x][y];
for(int i=1;i<=n;i++)
a[x][i]/=k;
}
void exchange2(int p1,int p2){
for(int i=1;i<=n;i++)
swap(a[p1][i],a[p2][i]);
}
void exchange3(int x,int y){
for(int i=2;i<=n;i++){
double k=a[i][y];
for(int j=1;j<=n;j++){
a[i][j]-=a[x][j]*k;
}
}
}
void Gauss(){
for(int j=1;j<=n;j++){
double minx=114514;int p;
for(int i=1;i<=n;i++){
if(a[i][j]<minx){
minx=a[i][j];
p=i;
}
}
exchange2(1,p);
exchange1(1,j);
exchange3(1,j);
}
}
}mat;
int main(){
cin>>mat.n;
for(int i=1;i<=mat.n;i++)
for(int j=1;j<=mat.n;j++)
cin>>mat.a[i][j];
mat.Gauss();
for(int i=1;i<=mat.n;i++)
cout<<mat.a[i][i]<<endl;
}