#include <bits/stdc++.h>
using namespace std;
bool check(int n, int pos) { return (n & (1 << pos)) >> pos; }
int on(int n, int pos) { return n | (1 << pos); }
int off(int n, int pos) { return n & ~(1 << pos); }
const int M = 300010, mod = 1000000007;
int n;
double p[19][19];
double beaten[M][19];
double dp[19][M];
double calc(int mask, int i) {
  int now = __builtin_popcount(mask) + 1;
  double sum = 0;
  if (now <= 1) return 0;
  for (int j = 0; j < n; j++) {
    if (check(mask, j) == 1) sum += p[j][i];
  }
  return (sum * 2) / (now * (now - 1));
}
double call(int m, int mask) {
  if (m == 1) return 1;
  if (dp[m][mask] > -.1) return dp[m][mask];
  double sum = 0;
  for (int i = 0; i < n; i++) {
    if (check(mask, i) == 0) {
      sum += beaten[mask][i] * call(m - 1, on(mask, i));
    }
  }
  return dp[m][mask] = sum;
}
int main() {
  ios_base::sync_with_stdio(false);
  int i, j, k, mask;
  memset((dp), (-1), sizeof(dp));
  cin >> n;
  for (i = 0; i < n; i++)
    for (j = 0; j < n; j++) cin >> p[i][j];
  for (mask = 0; mask <= (1 << n); mask++) {
    for (i = 0; i < n; i++) {
      if (check(mask, i) == 0) {
        beaten[mask][i] = calc(mask, i);
      }
    }
  }
  cout << fixed << setprecision(6);
  for (i = 0; i < n; i++) cout << call(n, on(0, i)) << " ";
  cout << endl;
  return 0;
}
