#include <bits/stdc++.h>
int a[60];
double C(int n, int m) {
  int i, j;
  double res = 1;
  for (i = 1, j = n; i <= m; i++, j--) res *= j * 1.0 / i;
  return res;
}
double dp[60][60][60];
int main() {
  int i, j, k, l, m, n;
  while (scanf("%d%d", &n, &m) != EOF) {
    for (i = 1; i <= m; i++) scanf("%d", a + i);
    memset(dp, 0, sizeof(dp));
    double p = 1;
    for (i = 0; i <= m; i++) dp[0][i][0] = 1;
    for (i = 1; i <= n; i++) {
      for (j = 1; j <= m; j++) {
        for (k = 0; k <= i; k++) {
          int r;
          r = (k - 1) / a[j] + 1;
          if (k == 0) r = 0;
          double p = C(i, k) * pow(1.0 / j, k) * pow(1 - 1.0 / j, i - k);
          for (l = 0; l <= i; l++)
            if (r > l)
              dp[i][j][r] += dp[i - k][j - 1][l] * p;
            else
              dp[i][j][l] += dp[i - k][j - 1][l] * p;
        }
      }
    }
    double ans = 0;
    for (i = 1; i <= n; i++) {
      ans += dp[n][m][i] * i;
    }
    printf("%.12lf\n", ans);
  }
}
