#include <bits/stdc++.h>
int n, m, sz[51];
double dp[51][51][51];
double con[51][51];
void solve(int rest, int st) {
  int i, j, k, mm;
  double p, per;
  if (dp[rest][st][0] > -0.5) return;
  for (k = 0; k < n + 1; k++) dp[rest][st][k] = 0;
  if (st == m - 1) {
    dp[rest][st][(rest + sz[st] - 1) / sz[st]] = 1;
    return;
  }
  p = 1 / (double)(m - st);
  for (k = 0; k < rest + 1; k++) {
    solve(rest - k, st + 1);
    per = con[rest][k] * pow(p, k) * pow(1 - p, rest - k);
    mm = (k + sz[st] - 1) / sz[st];
    for (i = 0; i < n + 1; i++) {
      j = mm;
      if (j < i) j = i;
      dp[rest][st][j] += dp[rest - k][st + 1][i] * per;
    }
  }
}
int main() {
  int i, j, k, l;
  double res;
  con[0][0] = 1;
  for (j = 1; j < 51; j++) con[0][j] = 0;
  for (i = 1; i < 51; i++) {
    con[i][0] = 1;
    for (j = 1; j < 51; j++) con[i][j] = con[i - 1][j - 1] + con[i - 1][j];
  }
  for (i = 0; i < 51; i++)
    for (j = 0; j < 51; j++)
      for (k = 0; k < 51; k++) dp[i][j][k] = -1;
  scanf("%d%d", &n, &m);
  for (i = 0; i < m; i++) scanf("%d", sz + i);
  solve(n, 0);
  res = 0;
  for (i = 0; i < n + 1; i++) res += dp[n][0][i] * i;
  printf("%.10lf\n", res);
  return 0;
}
