#include <bits/stdc++.h>
using namespace std;
const int M = 1e2 * 2 + 5;
int n, m, a[M];
double C[M][M], dp[M][M][M], ans, T;
void pre() {
  C[0][0] = 1;
  for (int i = 1; i <= 50; ++i) {
    C[i][0] = 1;
    for (int j = 1; j <= i; ++j) C[i][j] = C[i - 1][j - 1] + C[i - 1][j];
  }
}
int main() {
  scanf("%d %d", &n, &m);
  for (int i = 1; i <= m; i++) {
    scanf("%d", &a[i]);
  }
  pre();
  dp[0][0][0] = 1;
  for (int i = 1; i <= m; i++) {
    for (int j = 0; j <= n; j++) {
      for (int k = 0; k <= j; k++) {
        for (int l = 0; l <= n - j; l++) {
          dp[i][j + l][max((l + a[i] - 1) / a[i], k)] +=
              dp[i - 1][j][k] * C[n - j][l];
        }
      }
    }
  }
  for (int i = 0; i <= n; ++i) T += dp[m][n][i];
  for (int i = 1; i <= n; ++i) ans += i * dp[m][n][i] / T;
  printf("%.20lf", ans);
  return 0;
}
