#include <bits/stdc++.h>
using namespace std;
const int MAX = 50;
const int INF = 1000000001;
long long binom[MAX + 1][MAX + 1];
int A[MAX + 1];
int n, m;
long double dp[MAX + 1][MAX + 1];
long double solve(int k) {
  dp[0][0] = 1.0;
  for (int i = 1; i <= m; ++i) {
    int t = A[i] * k;
    dp[i][0] = 1.0;
    for (int j = 1; j <= n; ++j) {
      dp[i][j] = 0.0;
      long double p = 1.0 / i;
      for (int s = 0; s <= min(t, j); ++s)
        dp[i][j] +=
            dp[i - 1][j - s] * binom[j][s] * pow(p, s) * pow(1.0 - p, j - s);
    }
  }
  return 1.0 - dp[m][n];
}
int main(int argc, char *argv[]) {
  scanf("%d %d", &n, &m);
  for (int i = 0; i <= MAX; ++i) {
    binom[i][0] = 1;
    for (int j = 1; j <= i; ++j)
      binom[i][j] = binom[i - 1][j] + binom[i - 1][j - 1];
  }
  for (int i = 1; i <= m; ++i) scanf("%d", A + i);
  long double res = 1.0;
  for (int i = 1; i <= n - 1; ++i) res += solve(i);
  cout.precision(10);
  cout << res << endl;
  return 0;
}
