#include <bits/stdc++.h>
using namespace std;
const double pi = acos(-1.0);
const int maxn = 60;
double prob[maxn][maxn][maxn], f[maxn][maxn][maxn];
int n, m, a[maxn];
int main() {
  cin >> n >> m;
  for (int i = 1; i <= m; ++i) cin >> a[i];
  for (int nn = 0; nn <= n; ++nn)
    for (int mm = 0; mm <= m; ++mm)
      for (int x = 0; x <= nn; ++x) {
        prob[nn][mm][x] = 1;
        for (int i = 1; i <= x; ++i)
          prob[nn][mm][x] *= (double)(nn - x + i) / mm;
        for (int i = 1; i <= nn - x; ++i)
          prob[nn][mm][x] *= (double)(mm - 1) / mm;
        for (int i = 2; i <= x; ++i) prob[nn][mm][x] /= (double)i;
      }
  memset(f, 0, sizeof(f));
  f[0][0][0] = 1;
  for (int i = 0; i < m; ++i)
    for (int j = 0; j <= n; ++j)
      for (int k = 0; k <= n; ++k)
        if (f[i][j][k] > 0) {
          for (int peo = 0; peo + j <= n; ++peo) {
            int t = max(k, (peo - 1) / a[i + 1] + 1);
            f[i + 1][j + peo][t] += f[i][j][k] * prob[n - j][m - i][peo];
          }
        }
  double res = 0;
  for (int k = 1; k <= n; ++k) {
    res += f[m][n][k] * k;
  }
  printf("%.11f\n", res);
  return 0;
}
