#include <bits/stdc++.h>
using namespace std;
int N;
double pEatenBy[18][1 << 18];
double a[18][18];
double dp[1 << 18];
int pows[1 << 18];
double getVals(int i, int m) {
  if (m == 0) return 0;
  int mone = m & (~(m - 1));
  int ind = pows[mone];
  return pEatenBy[i][m] < -0.5
             ? pEatenBy[i][m] = a[ind][i] + getVals(i, m & (~(mone)))
             : pEatenBy[i][m];
}
double f(int mask) {
  int ones = __builtin_popcount(mask);
  if (ones == N) return 1;
  double& r = dp[mask];
  if (r > -0.5) return r;
  r = 0;
  for (int i = 0; i < N; i++)
    if (!(mask & (1 << i))) r += f(mask | (1 << i)) * pEatenBy[i][mask];
  r *= (2.0 / ((double)ones * (ones + 1)));
  return r;
}
int main() {
  scanf("%d", &N);
  for (int i = 0; i < N; i++)
    for (int j = 0; j < N; j++) scanf("%lf", &a[i][j]);
  for (int i = 0; i < 1 << N; i++) dp[i] = -1;
  for (int i = 0; i < N; i++)
    for (int j = 0; j < 1 << N; j++) pEatenBy[i][j] = -1;
  for (int i = 0; i < N; i++) pows[1 << i] = i;
  for (int victim = 0; victim < N; victim++)
    for (int mask = 0; mask < 1 << N; mask++) getVals(victim, mask);
  for (int i = 0; i < N; i++) {
    double x = f(1 << i);
    if (i == 0)
      printf("%.6lf", x);
    else
      printf(" %.6lf", x);
  }
  printf("\n");
  return 0;
}
