#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:16777216")
const double PI(acos(-1.0));
using namespace std;
long double dp[55][55][55], cnk[55][55];
int v[55];
int main() {
  cout.precision(2);
  srand(unsigned(time(nullptr)));
  int n, m;
  scanf("%d%d", &n, &m);
  for (int i = 0; i < m; ++i) scanf("%d", &v[i]);
  for (int N = 0; N < 52; ++N) {
    cnk[N][0] = cnk[N][N] = 1;
    for (int k = 1; k < N; ++k) cnk[N][k] = cnk[N - 1][k - 1] + cnk[N - 1][k];
  }
  dp[0][n][0] = 1;
  for (int i = 0; i < m; ++i)
    for (int j = 0; j <= n; ++j)
      for (int k = 0; k <= n; ++k)
        for (int cnt = 0, q; cnt <= j; ++cnt)
          q = max(k, int((cnt + v[i] - 1) / v[i])),
          dp[i + 1][j - cnt][q] += cnk[j][cnt] * dp[i][j][k];
  long double a = 0, b = 0;
  for (int i = 0; i <= n; ++i) a += i * dp[m][0][i], b += dp[m][0][i];
  printf("%.20Lf\n", a / b);
}
