#include <bits/stdc++.h>
const long MaxN = 60;
using namespace std;
double c[MaxN][MaxN] = {0}, pp[MaxN] = {0};
int a[MaxN] = {0};
double f[MaxN][MaxN][MaxN] = {0};
int main() {
  int n, m;
  cin >> n >> m;
  for (int i = 1; i < m + 1; ++i) cin >> a[i];
  pp[0] = 1;
  for (int i = 1; i < n + 1; ++i) pp[i] = pp[i - 1] / m;
  c[0][0] = 1;
  for (int i = 1; i < n + 1; ++i) {
    c[i][0] = 1;
    for (int j = 1; j < i + 1; ++j) c[i][j] = c[i - 1][j - 1] + c[i - 1][j];
  }
  f[0][0][0] = 1;
  for (int i = 0; i < m; ++i)
    for (int j = 0; j < n + 1; ++j)
      for (int k = 0; k < j + 1; ++k) {
        if (f[i][j][k] > 0)
          for (int l = 0; l < n - j + 1; ++l)
            f[i + 1][j + l][max(k, l / a[i + 1] + (l % a[i + 1] != 0))] +=
                f[i][j][k] * c[n - j][l] * pp[l];
      }
  double res = 0;
  for (int i = 1; i < n + 1; ++i) res += i * f[m][n][i];
  printf("%.12lf\n", res);
  return 0;
}
