#include <bits/stdc++.h>
using namespace std;
const int cache_bits = 20;
const int cache_mask = (1 << cache_bits) - 1;
vector<long long> count_cache;
int count(long long x) {
  int s = 0;
  while (x) {
    s += count_cache[x & cache_mask];
    x >>= cache_bits;
  }
  return s;
}
void build_count_cache() {
  count_cache.resize(1 << cache_bits);
  for (int i = (1); i < (int)(count_cache.size()); i++)
    count_cache[i] = count_cache[i & (i - 1)] + 1;
}
void solve() {
  build_count_cache();
  int n;
  cin >> n;
  vector<string> S(n);
  for (int(i) = 0; (i) < (n); (i)++) cin >> S[i];
  int m = S[0].size();
  vector<long long> mask_array(1 << m);
  for (int(i) = 0; (i) < (n); (i)++) {
    for (int j = (i + 1); j < (int)(n); j++) {
      long long s = 0;
      for (int(k) = 0; (k) < (m); (k)++)
        if (S[i][k] == S[j][k]) s |= (1 << k);
      mask_array[s] |= (1LL << i) | (1LL << j);
    }
  }
  for (int i = mask_array.size() - 1; i; --i) {
    if (!mask_array[i]) {
      continue;
    }
    for (int(bit_idx) = 0; (bit_idx) < (m); (bit_idx)++) {
      long long bit = (1 << bit_idx);
      if (bit & i) {
        mask_array[i ^ bit] |= mask_array[i];
      }
    }
  }
  vector<double> subset_probs(m, 1.);
  for (int k = (0); k < (int)(subset_probs.size()); k++) {
    for (int(i) = 0; (i) < (k); (i)++) {
      subset_probs[k] *= double(k - i) / (m - i);
    }
    subset_probs[k] /= (m - k);
  }
  vector<double> cnt_per_attemp(m);
  for (int i = 0; i < (int)(mask_array).size(); i++) {
    if (!mask_array[i]) {
      continue;
    }
    int attemps = count(i);
    int unk_before = count(mask_array[i]);
    for (int(bit_idx) = 0; (bit_idx) < (m); (bit_idx)++) {
      long long bit = 1 << bit_idx;
      if ((bit & i) == 0) {
        long long unk_after_mask = mask_array[i] & mask_array[(i | bit)];
        int unk_after = count(unk_after_mask);
        cnt_per_attemp[attemps] += (unk_before - unk_after);
      }
    }
  }
  double mexp = 0;
  for (int(i) = 0; (i) < (m); (i)++)
    mexp += (i + 1) * subset_probs[i] * cnt_per_attemp[i] / n;
  cout.precision(15);
  cout << mexp;
}
int main() {
  solve();
  return 0;
}
