#include <bits/stdc++.h>
using namespace std;
const int64_t M1 = 998244353;
const int64_t M2 = 1000000007;
mt19937 rng((uint64_t)chrono::steady_clock::now().time_since_epoch().count());
vector<vector<double>> a;
vector<double> dp;
int64_t n;
double get(int64_t mask) {
  if (mask == (1 << n) - 1) return 1.0;
  if (dp[mask] != -1) return dp[mask];
  double cnt = 0;
  dp[mask] = 0;
  for (int64_t i = 0; i < n; i++) cnt += double((mask >> i) & 1);
  for (int64_t i = 0; i < n; i++) {
    if ((mask >> i) & 1) continue;
    int64_t nmask = mask | (1 << i);
    for (int64_t j = 0; j < n; j++) {
      if (!((mask >> j) & 1)) continue;
      dp[mask] += (a[j][i] * get(nmask) * 2.0) / (cnt * (cnt + 1.0));
    }
  }
  return dp[mask];
}
void solve() {
  cin >> n;
  a.resize(n, vector<double>(n));
  dp.resize((1 << n), -1);
  for (int64_t i = 0; i < n; i++)
    for (double &x : a[i]) cin >> x;
  for (int64_t i = 0; i < n; i++)
    cout << fixed << setprecision(6) << get(1 << i) << " ";
  cout << "\n";
}
int32_t main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  solve();
}
