#include <bits/stdc++.h>
using namespace std;
int n, m, ans, cnt, tot, flag;
int a[55];
double c[55][55], dp[55][55][55];
void solve() {
  int i, j, k, x, t;
  memset(dp, 0, sizeof(dp));
  dp[0][0][0] = 1;
  for (i = 0; i < m; i++) {
    for (j = 0; j <= n; j++) {
      for (k = 0; k <= n; k++) {
        if (dp[i][j][k] == 0) continue;
        for (x = 0; x + j <= n; x++) {
          if (x % a[i + 1] == 0)
            t = 0;
          else
            t = 1;
          int ma = max(x / a[i + 1] + t, k);
          dp[i + 1][j + x][ma] += dp[i][j][k] * c[n - j][x] *
                                  pow(m - i - 1.0, n - j - x - 0.0) /
                                  pow(m - i - 0.0, n - j - 0.0);
        }
      }
    }
  }
  double res = 0;
  for (i = 0; i <= n; i++) {
    res += dp[m][n][i] * i;
  }
  printf("%.10f\n", res);
}
int main() {
  int i, j, t;
  for (i = 0; i <= 50; i++) {
    c[i][0] = 1;
  }
  for (i = 1; i <= 50; i++) {
    for (j = 1; j <= i; j++) {
      c[i][j] = c[i - 1][j - 1] + c[i - 1][j];
    }
  }
  while (~scanf("%d%d", &n, &m)) {
    for (i = 1; i <= m; i++) {
      scanf("%d", &a[i]);
    }
    solve();
  }
  return 0;
}
