#include <bits/stdc++.h>
using namespace std;
int N;
vector<vector<long long> > dp[(1 << 14)];
vector<int> diffs[18][2];
long long sum[(1 << 14)];
long long mat[18][18];
long long recur(int mask1, int mask2, int last) {
  int b = __builtin_popcount(mask1);
  if (!(mask1 & (1 << last))) {
    return 0;
  }
  if (dp[mask1][mask2][last] != -1) {
    return dp[mask1][mask2][last];
  }
  if (b == 1) {
    return (mask2 == 0) && (mask1 == (1 << last));
  }
  long long s = 0;
  for (auto it : diffs[last][!(!(mask2 & (1 << (b - 2))))]) {
    s += recur(mask1 ^ (1 << last), mask2 & (((1 << (b - 2)) - 1)), it);
  }
  dp[mask1][mask2][last] = s;
  return dp[mask1][mask2][last];
}
void solve() {
  cin >> N;
  for (int i = 0; i < N; ++i) {
    for (int j = 0; j < N; ++j) {
      char x;
      cin >> x;
      mat[i][j] = x - '0';
      if (i != j) diffs[i][mat[i][j]].push_back(j);
    }
  }
  for (int i = 1; i < (1 << N); ++i) {
    dp[i].resize((1 << (__builtin_popcount(i) - 1)) + 1);
    for (int j = 0; j < dp[i].size(); ++j) {
      dp[i][j].resize(N, 0);
    }
  }
  for (int mask1 = 1; mask1 < (1 << N); ++mask1) {
    int b = __builtin_popcount(mask1);
    for (int mask2 = 0; mask2 < (1 << (b - 1)); ++mask2) {
      for (int last = 0; last < N; ++last) {
        if (!(mask1 & (1 << last))) {
          dp[mask1][mask2][last] = 0;
          continue;
        }
        if (b == 1) {
          dp[mask1][mask2][last] = ((mask2 == 0) && (mask1 == (1 << last)));
          continue;
        }
        long long s = 0;
        for (auto it : diffs[last][!(!(mask2 & (1 << (b - 2))))]) {
          s += dp[mask1 ^ (1 << last)][mask2 & (((1 << (b - 2)) - 1))][it];
        }
        dp[mask1][mask2][last] = s;
      }
    }
  }
  for (int i = 0; i < (1 << (N - 1)); ++i) {
    for (int j = 0; j < N; ++j) {
      sum[i] += dp[(1 << N) - 1][i][j];
    }
  }
  for (int i = 0; i < (1 << (N - 1)); ++i) {
    cout << sum[i] << ' ';
  }
  cout << '\n';
}
void run_tc() {
  int tc = 1;
  for (int t = 1; t <= tc; ++t) solve();
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  run_tc();
}
