#include <bits/stdc++.h>
double a[1 << 18][18];
int used[1 << 18];
double p[18][18];
int n;
void go(int state) {
  if (used[state]) return;
  used[state] = 1;
  for (int i = 0; i < n; i++)
    if (state == (1 << i)) {
      for (int j = 0; j < n; j++) a[state][j] = 1.0 * (i == j);
      return;
    }
  int cnt = 0;
  for (int i = 0; i < n; i++)
    if (state & (1 << i)) {
      ++cnt;
      for (int j = i + 1; j < n; j++)
        if (state & (1 << j)) {
          double *x = a[state - (1 << i)];
          double *y = a[state - (1 << j)];
          go(state - (1 << i));
          go(state - (1 << j));
          for (int k = 0; k < n; k++)
            a[state][k] += y[k] * p[i][j] + x[k] * p[j][i];
        }
    }
  cnt = cnt * (cnt - 1) / 2;
  for (int i = 0; i < n; i++) a[state][i] /= (double)cnt;
  return;
}
int main(void) {
  int i, j;
  scanf("%d", &n);
  for (i = 0; i < n; i++)
    for (j = 0; j < n; j++) scanf("%lf", &p[i][j]);
  go((1 << n) - 1);
  for (i = 0; i < n; i++) printf("%.6lf ", a[(1 << n) - 1][i]);
  puts("");
  return 0;
}
