#include <algorithm> 
#include <string> 
#include <set> 
#include <map> 
#include <vector> 
#include <queue> 
#include <iostream> 
#include <iterator> 
#include <sstream> 
#include <cmath> 
#include <cstdio> 
#include <cstdlib> 
#include <numeric>
#include <memory.h> 
#include <iomanip>

using namespace std; 

#define FOR(i,a,b) for (int _n(b), i(a); i < _n; i++) 
#define REP(i,n) FOR(i,0,n) 
#define pb push_back 
#define sz size() 

#define ALL(c) (c).begin(), (c).end() 
#define SORT(c) sort(ALL(c))
#define UNIQUE(c) SORT((c)), (c).erase(unique(ALL((c))), (c).end())
#define MAX(a,b) (((a) > (b)) ? (a) : (b))  
#define MIN(a,b) (((a) < (b)) ? (a) : (b))
#define MP(a,b)  make_pair((a), (b))
#define SQR(a) ((a)*(a))
#define X first
#define Y second

typedef pair<int,int> ii;
typedef vector<int > vi;
typedef vector<vi > vvi;
typedef vector<ii  > vii;
typedef vector<vii  > vvii;
typedef long long ll;
typedef pair<ll, ll> pll;

typedef unsigned long long ull;

string filename = "test";

double a[20][20];
int n;

double* mem[1<<18];

double* go(int mask){
    if (mem[mask] != 0)
        return mem[mask];

    double* ret = new double[n];
    REP(i, n)
        ret[i] = 0.0;
    mem[mask] = ret;

    int q[20];
    int cnt = 0;
    REP(i, n)
        if (mask & (1<<i))
            q[cnt++] = i;
    if (cnt == 1){
        REP(i, n)
            ret[i] = i == q[0] ? 1.0 : 0.0;
    }else{
        double coef = 2.0 / (cnt) / (cnt - 1.0);
        REP(ii, cnt)FOR(jj, ii + 1, cnt){
            int i = q[ii], j = q[jj];
            double* r1 = go(mask ^ (1<<j));
            double* r2 = go(mask ^ (1<<i));
            REP(k, n)
                if (k != j)
                    ret[k] += a[i][j] * coef*(r1[k]);
            REP(k, n)
                if (k != i)
                    ret[k] += a[j][i] * coef*(r2[k]);
        }
    }

    return ret;
}

int main(){
    string str_fin = filename + ".in", str_fout = filename + ".out";
    //freopen(str_fin.c_str(), "r", stdin);     
    //freopen(str_fout.c_str(), "w", stdout);

    memset(mem, 0, sizeof(mem));

    cin>>n;
    REP(i, n)REP(j, n)
        cin>>a[i][j];

    double* p = go((1<<n) - 1);
    REP(i, n){
        if (i)
            cout<<" ";
        printf("%.7lf", p[i]);
    }
    cout<<endl;

    return 0;
}