#include <bits/stdc++.h>
using namespace std;
const int maxN = 18 + 2;
const int maxL = (1 << 18) + 5;
int n;
int test[maxN];
double dp[maxL];
double p[maxN][maxN];
int main() {
  cin >> n;
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= n; j++) cin >> p[i][j];
  for (int o = 1; o <= n; o++) {
    int x = (1 << (o - 1));
    for (int i = 1; i < (1 << n); i++)
      if (i & x) {
        int tmp = i, len = 0;
        dp[i] = 0;
        for (int j = 1; j <= n; j++) {
          if (tmp & 1) test[len++] = j;
          tmp = (tmp >> 1);
        }
        if (len == 1) {
          dp[i] = 1;
          continue;
        }
        int cnt = (len * (len - 1)) / 2;
        for (int j = 0; j < len; j++)
          if (test[j] != o) {
            double play = 0;
            for (int z = 0; z < len; z++) play += p[test[z]][test[j]];
            int k = (i ^ (1 << (test[j] - 1)));
            play /= cnt;
            dp[i] += play * dp[k];
          }
      }
    cout << fixed << setprecision(8) << dp[(1 << n) - 1] << ' ';
  }
  cout << endl;
  return 0;
}
