#include <bits/stdc++.h>
using namespace std;
vector<int> can[(1 << 20)];
string s[(50)];
long long dp[(1 << 20)];
int cnt[(1 << 20)];
int main() {
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) cin >> s[i];
  int len = s[0].size();
  for (int i = 0; i < n; i++)
    for (int j = i + 1; j < n; j++)
      if (i != j) {
        int mask = 0;
        for (int k = 0; k < len; k++)
          if (s[i][k] == s[j][k]) mask |= (1LL << k);
        dp[mask] |= (1LL << i) | (1LL << j);
      }
  for (int i = (1 << len) - 1; i >= 0; i--)
    for (int j = 0; j < len; j++)
      if (i & (1 << j)) dp[i ^ (1 << j)] |= dp[i];
  for (int i = 0; i < (1 << len); i++)
    for (int j = 0; j < len; j++)
      if (i & (1 << j)) cnt[i]++;
  long double ans = 0;
  for (int st = 1; st < (1 << len); st++) {
    long double add = 1.0;
    for (int i = 1; i < cnt[st]; i++) {
      add *= (cnt[st] - i);
      add /= (double)(len - i + 1);
    }
    add /= (double)len - cnt[st] + 1;
    for (int j = 0; j < len; j++)
      if (st & (1 << j)) {
        int pre = st ^ (1 << j), d_c = 0;
        long long tmp = dp[pre] ^ dp[st];
        while (tmp) {
          d_c++;
          tmp -= tmp & -tmp;
        }
        ans += add * cnt[st] * d_c;
      }
  }
  cout.precision(20);
  cout << fixed << ans / n << endl;
  return 0;
}
