#include <bits/stdc++.h>
using namespace std;
static const int MAXN = 50 + 10;
long double dp[MAXN][MAXN][MAXN];
int a[MAXN];
long double C[MAXN][MAXN];
int n, m;
void init() {
  C[0][0] = 1;
  for (int i = 1; i <= 50; i++)
    for (int j = 0; j <= i; j++) C[i][j] = C[i - 1][j] + C[i - 1][j - 1];
}
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= m; i++) scanf("%d", &a[i]);
  init();
  dp[0][0][0] = 1;
  for (int i = 1; i <= m; i++)
    for (int j = 0; j <= n; j++)
      for (int k = 0; k <= j; k++)
        for (int l = 0; l <= n - j; l++) {
          dp[i][j + l][max((l + a[i] - 1) / a[i], k)] +=
              dp[i - 1][j][k] * C[n - j][l];
        }
  long double tmp1 = 0, tmp2 = 0;
  for (int i = 0; i <= n; i++) {
    tmp2 += dp[m][n][i] * i;
    tmp1 += dp[m][n][i];
  }
  printf("%.12Lf\n", tmp2 / tmp1);
  return 0;
}
