#include <bits/stdc++.h>
using namespace std;
template <typename T>
inline void Read(T &t) {
  int c = getchar(), f = 0;
  for (; c < '0' || c > '9'; c = getchar()) f = (c == '-');
  for (t = 0; c >= '0' && c <= '9'; c = getchar())
    t = (t << 3) + (t << 1) + (c ^ 48);
  if (f) t = -t;
}
inline void read(double &r) {
  double x = 0, t = 0;
  int s = 0, f = 1;
  char c = getchar();
  for (; !isdigit(c); c = getchar()) {
    if (c == '-') f = -1;
    if (c == '.') goto readt;
  }
  for (; isdigit(c) && c != '.'; c = getchar()) x = x * 10 + c - '0';
readt:
  for (; c == '.'; c = getchar())
    ;
  for (; isdigit(c); c = getchar()) t = t * 10 + c - '0', ++s;
  r = (x + t / pow(10, s)) * f;
}
int n, m;
double a[23][23], f[532151];
int main() {
  Read(n), m = (1 << n) - 1, f[m] = 1;
  for (register int i = 1; i <= n; ++i)
    for (register int j = 1; j <= n; ++j) read(a[i][j]);
  double cnt;
  for (register int i = m - 1, r; i; --i) {
    cnt = 0, r = i;
    while (r) {
      if (r & 1) cnt++;
      r >>= 1;
    }
    for (register int j = 1; j <= n; ++j)
      if (!(i & (1 << (j - 1)))) {
        register int l = i | (1 << (j - 1));
        for (register int k = 1; k <= n; ++k)
          if (i & (1 << (k - 1)))
            f[i] += (double)f[l] * a[k][j] * 2.0 / ((cnt + 1.0) * cnt);
      }
  }
  for (register int i = 1; i <= n; ++i) printf("%.6lf ", f[1 << (i - 1)]);
  return 0;
}
