#include <bits/stdc++.h>
double dp[51][51][51], b[51], C[51][51];
int a[51];
int main() {
  int n, m;
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= m; ++i) scanf("%d", &a[i]);
  for (int i = 0; i <= n; ++i) C[i][0] = 1;
  for (int i = 1; i <= n; ++i)
    for (int j = 1; j <= i; ++j) C[i][j] = C[i - 1][j] + C[i - 1][j - 1];
  memset(dp, 0, sizeof(dp));
  dp[0][0][0] = 1;
  b[0] = 1;
  for (int i = 1; i <= n; ++i) b[i] = b[i - 1] / m;
  int h;
  for (int i = 1; i <= m; ++i)
    for (int j = 0; j <= n; ++j)
      for (int l = 0; l <= j; ++l) {
        for (int k = 0, rest = n - j; k <= rest; ++k) {
          h = ceil(k * 1.0 / a[i]);
          dp[i][j + k][(h <= l) ? l : h] += dp[i - 1][j][l] * C[rest][k] * b[k];
        }
      }
  double ans = 0;
  for (int i = 1; i <= n; ++i) ans += dp[m][n][i] * i;
  printf("%.11f\n", ans);
  return 0;
}
