#include <bits/stdc++.h>
using namespace std;
int dig[1048576], n, sum[1048576], m, l, t, w, c[1048576], zh[50][50];
long long int dp[1048576];
char s[51][21];
double ans[1048576], tmp, ave, a[1048576], u;
bool sam[51][21];
int lowbit(int x) { return (x & (-x)); }
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) scanf("%s", s[i]);
  if (n == 1) {
    printf("0.000000000\n");
    return 0;
  }
  l = strlen(s[0]);
  m = 1 << l;
  for (int i = 0; i <= l; i++) zh[i][0] = 1;
  for (int i = 1; i <= l; i++)
    for (int j = 1; j <= i; j++) zh[i][j] = zh[i - 1][j - 1] + zh[i - 1][j];
  for (int i = 0; i <= l; i++) c[i] = zh[l][i];
  for (int i = 0; i < m; i++) {
    w = i;
    dig[i] = 0;
    for (int j = 0; j < l; j++) {
      dig[i] += w % 2;
      w /= 2;
    }
  }
  for (int i = 0; i < n; i++) {
    ans[i] = 0.0;
    a[0] = 0.0;
    for (int j = 0; j < n; j++)
      for (int k = 0; k < l; k++) sam[j][k] = (s[i][k] == s[j][k] && i != j);
    memset(dp, 0, sizeof(dp));
    dp[0] = ((long long int)1 << n) - 1;
    for (int j = 0; j < l; j++) {
      long long int tmp = 0;
      for (int k = 0; k < n; k++)
        if (sam[k][j]) tmp += (long long int)1 << k;
      dp[1 << j] = tmp;
    }
    for (int j = 1; j < m; j++) dp[j] = dp[j - lowbit(j)] & dp[lowbit(j)];
    memset(sum, 0, sizeof(sum));
    u = 1.0;
    for (int j = 1; j < m; j++)
      if (dp[j] == 0) sum[dig[j]]++;
    for (int j = 1; j <= l; j++) a[j] = double(sum[j]) / c[j];
    for (int j = 1; j <= l; j++) ans[i] += (a[j] - a[j - 1]) * j;
  }
  ave = 0.0;
  for (int i = 0; i < n; i++) ave = ave + ans[i];
  printf("%.9f\n", ave / n);
  return 0;
}
