#include <bits/stdc++.h>
using namespace std;
int n;
double mat[19][19];
double dp[1 << 18], ret[19];
;
void solve() {
  dp[0] = 1;
  for (int i = 0; i < (int)1 << n; i++) {
    double val = dp[i];
    int bit = i;
    int cbits = __builtin_popcount(bit);
    cbits = n - cbits;
    cbits = (cbits - 1) * cbits;
    cbits /= 2;
    if (cbits <= 0) cbits = 1;
    for (int j = 0; j < (int)n; j++) {
      if (((i >> j) & 1) == 1) continue;
      for (int k = j + 1; k < n; k++) {
        if (((i >> k) & 1)) continue;
        if (k == j) continue;
        dp[(bit | ((1 << j)))] += val * mat[k][j] / cbits;
        dp[(bit | ((1 << k)))] += val * mat[j][k] / cbits;
      }
    }
    int indx;
    int cc = 0;
    for (int j = 0; j < (int)n; j++) {
      if (((i >> j) & 1)) {
        cc++;
      } else {
        indx = j;
      }
    }
    if (cc == n - 1) {
      ret[indx] = dp[i];
    }
  }
  for (int i = 0; i < (int)n; i++) {
    printf("%0.8lf ", ret[i]);
  }
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < (int)n; i++) {
    for (int j = 0; j < (int)n; j++) {
      scanf("%lf", &mat[i][j]);
    }
  }
  memset(dp, 0, sizeof dp);
  solve();
}
