#include <bits/stdc++.h>
using namespace std;
int n;
long double p[18][18];
long double dp[1 << 18];
long double memo(int mask) {
  if (dp[mask] > -1) return dp[mask];
  if (mask == ((1 << n) - 1)) return 1;
  vector<int> on, off;
  for (int i = 0; i < n; i++) {
    if ((mask & (1 << i)))
      on.push_back(i);
    else
      off.push_back(i);
  }
  long double res = 0;
  for (int i = 0; i < on.size(); i++) {
    for (int j = 0; j < off.size(); j++) {
      int x = on[i];
      int y = off[j];
      if (dp[mask ^ (1 << y)] > -1)
        res += p[x][y] * dp[mask ^ (1 << y)];
      else
        res += p[x][y] * memo(mask ^ (1 << y));
    }
  }
  res *= (2 / ((on.size() * on.size() + on.size()) * 1.0));
  return dp[mask] = res;
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n;
  for (int i = 0; i < (1 << n); i++) dp[i] = -1;
  for (int i = 0; i < n; i++)
    for (int j = 0; j < n; j++) cin >> p[i][j];
  for (int i = 0; i < n; i++)
    cout << fixed << setprecision(6) << memo((1 << i)) << " ";
  cout << "\n";
  return 0;
}
