#include <bits/stdc++.h>
using namespace std;
bool g[2005][2005];
int n, bit[1 << 6], fac[7], deg[2005];
bool chk() {
  int sum = 0, tmp[2005];
  for (int i = 0; i <= n - 1; i++) tmp[i] = deg[i];
  sort(tmp, tmp + n, greater<int>());
  for (int i = 0; i <= n - 2; i++) {
    sum += tmp[i];
    if (sum == (i + 1) * i / 2 + (i + 1) * (n - 1 - i)) return false;
  }
  return true;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cin >> n;
  for (int i = 0; i <= n - 1; i++) {
    for (int j = 0; j <= n - 1; j++) {
      char c;
      cin >> c;
      if (c == '1') g[i][j] = true, deg[i]++;
    }
  }
  if (n <= 6) {
    fac[0] = 1;
    for (int i = 1; i <= 6; i++) fac[i] = fac[i - 1] * i;
    for (int i = 1; i <= 63; i++)
      for (int j = 0; j <= 5; j++)
        if (i & 1 << j) bit[i]++;
    int ans = n + 1, cnt = 0;
    for (int i = 0; i <= (1 << n) - 1; i++) {
      for (int j = 0; j <= n - 1; j++)
        if (i & 1 << j)
          for (int k = 0; k <= n - 1; k++)
            if (j != k) swap(g[j][k], g[k][j]);
      memset(deg, 0, sizeof deg);
      for (int j = 0; j <= n - 1; j++)
        for (int k = 0; k <= n - 1; k++)
          if (g[j][k]) deg[j]++;
      if (chk()) {
        if (bit[i] < ans)
          ans = bit[i], cnt = 1;
        else if (bit[i] == ans)
          cnt++;
      }
      for (int j = 0; j <= n - 1; j++)
        if (i & 1 << j)
          for (int k = 0; k <= n - 1; k++)
            if (j != k) swap(g[j][k], g[k][j]);
    }
    if (ans <= n)
      cout << ans << ' ' << fac[ans] * cnt << '\n';
    else
      cout << -1 << '\n';
    return 0;
  }
  if (chk()) {
    cout << "0 1";
    return 0;
  }
  int cnt = 0;
  for (int i = 0; i <= n - 1; i++) {
    for (int j = 0; j <= n - 1; j++)
      if (i != j) {
        if (g[i][j])
          deg[i]--, deg[j]++;
        else
          deg[i]++, deg[j]--;
      }
    if (chk()) cnt++;
    for (int j = 0; j <= n - 1; j++)
      if (i != j) {
        if (!g[i][j])
          deg[i]--, deg[j]++;
        else
          deg[i]++, deg[j]--;
      }
  }
  cout << 1 << ' ' << cnt << '\n';
  return 0;
}
