#include <bits/stdc++.h>
using namespace std;
const long long inf = 1e18;
const long long maxu = 200005;
void google(long long t) { cout << "Case #" << t << ": "; }
long long fun(long long a, long long b) {
  if (b == 0)
    return 1;
  else if (a == 1)
    return 1;
  long long temp = fun(a, b / 2) % 1000000007;
  temp = (temp * temp) % 1000000007;
  if (b % 2 == 1) temp = (temp * a) % 1000000007;
  return temp % 1000000007;
}
long long inv(long long a, long long b) {
  return (a * fun(b, 1000000007 - 2)) % 1000000007;
}
long double pro[19][19];
long double dp[1 << 19];
long long n;
long double fun(long long mask) {
  if (mask == (1 << n) - 1) return 1.0;
  if (dp[mask] > -1.0) return dp[mask];
  long long cnt = __builtin_popcountll(mask) + 1;
  cnt = (cnt * (cnt - 1)) / 2;
  long double ans = 0;
  for (long long i = 0; i < n; i++) {
    if ((1 << i) & mask) continue;
    long double temp = 0.0;
    long long mask2 = (1 << i) ^ mask;
    long double pi = fun(mask2);
    for (long long j = 0; j < n; j++) {
      if ((1 << j) & mask2) {
        temp += pro[j][i];
      }
    }
    ans += (temp * (pi * 1.0)) / (cnt * 1.0);
  }
  return dp[mask] = ans;
}
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long i, j, k = 0, m, l = 0;
  long long t = 1;
  long long T = 1;
  for (t = 1; t <= T; t++) {
    cin >> n;
    for (i = 0; i < (1 << 19); i++) {
      dp[i] = -2.0;
    }
    for (i = 0; i < n; i++)
      for (j = 0; j < n; j++) cin >> pro[i][j];
    for (i = 0; i < n; i++) {
      cout << setprecision(10) << fun(1 << i) << " ";
    }
    cout << "\n";
  }
  return 0;
}
