#include <bits/stdc++.h>
using namespace std;
const double pi = acos(-1.0);
const int maxs = (1 << (18));
double f[maxs], plose[18][maxs];
double a[18][18];
int ct[maxs], id[maxs];
int n;
void work() {
  for (int i = 0; i < (1 << (n)); i++) f[i] = 0;
  f[(1 << (n)) - 1] = 1;
  for (int st = (1 << (n)) - 1; st > 0; st--)
    if (f[st] > 0) {
      if (ct[st] <= 1) continue;
      int t = ct[st];
      for (int j = 0; j < n; j++)
        if ((1 << (j)) & st)
          f[st ^ (1 << (j))] +=
              f[st] * plose[j][st ^ (1 << (j))] / (t * (t - 1) / 2);
    }
  for (int i = 0; i < n; i++) printf("%.6f ", f[(1 << (i))]);
  puts("");
}
void init() {
  cin >> n;
  for (int i = 0; i < n; i++)
    for (int j = 0; j < n; j++) cin >> a[i][j];
  ct[0] = 0;
  for (int i = 1; i < (1 << (n)); i++) ct[i] = ct[i - (i & (-i))] + 1;
  for (int i = 0; i < n; i++) id[(1 << (i))] = i;
  for (int j = 1; j < (1 << (n)); j++)
    for (int i = 0; i < n; i++)
      if (!(j & (1 << (i))))
        plose[i][j] = plose[i][j - (j & (-j))] + a[id[j & (-j)]][i];
}
int main() {
  init();
  work();
  return 0;
}
