#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1024 * 1024;
int cnt[MAXN];
string s[50];
double c[100][100];
long long d[MAXN];
int eq[50][50];
int _null[200000];
int m, n;
int find_null(long long a, int kk) {
  int k = 1 << 16;
  int ans = 0;
  for (int i = 0; i < 4; i++) {
    ans += _null[a & (k - 1)];
    a /= k;
  }
  return ans - (64 - kk);
}
int main() {
  ios_base::sync_with_stdio(false);
  for (int i = 0; i < (1 << 16); i++) {
    for (int j = 0; j < 16; j++)
      if (!(i & (1 << j))) _null[i]++;
  }
  for (int i = 0; i < 100; i++) c[0][i] = 1.0;
  for (int i = 1; i < 100; i++)
    for (int j = i; j < 100; j++) c[i][j] = c[i - 1][j - 1] + c[i][j - 1];
  cin >> n;
  for (int i = 0; i < n; i++) cin >> s[i];
  m = (int)s[0].size();
  int two = 1 << m;
  for (int i = 0; i < n; i++)
    for (int j = i + 1; j < n; j++) {
      for (int k = 0; k < m; k++)
        if (s[i][k] == s[j][k]) eq[i][j] |= 1 << k;
      d[eq[i][j]] |= (long long)1 << i;
      d[eq[i][j]] |= (long long)1 << j;
    }
  for (int i = two - 1; i >= 0; i--)
    for (int j = 0; j < m; j++) d[i] |= d[i | (1 << j)];
  for (int i = 0; i < two; i++) {
    cnt[i] = find_null(d[i], n);
  }
  double ans = 0;
  for (int i = 1; i < two; i++) {
    int st = m - find_null(i, m);
    for (int j = 0; j < m; j++) {
      if ((i & (1 << j)) > 0) {
        int n_i = i & (~(1 << j));
        int _new = cnt[i] - cnt[n_i];
        ans += _new * st / (double)(c[st - 1][m]) / (double)(m - st + 1);
      }
    }
  }
  cout.setf(ios::fixed);
  cout.precision(20);
  cout << ans / (double)n;
  return 0;
}
