#include <bits/stdc++.h>
using namespace std;
double C(int n, int k) {
  if (n < k) return 0;
  double ret = 1;
  for (int i = 0; i < k; i++) ret *= n - i, ret /= i + 1;
  return ret;
}
int n, m, a[50];
double dp[51][52][52];
void run() {
  cin >> n >> m;
  for (int i = 0; i < m; i++) cin >> a[i];
  memset(dp, 0, sizeof(dp));
  dp[0][0][0] = 1;
  for (int i = 0; i < m; i++)
    for (int j = 0; j < n + 1; j++)
      for (int k = 0; k < n + 1; k++) {
        for (int l = 0; l < n - k + 1; l++) {
          int nmx = max(j, l / a[i] + (l % a[i] != 0));
          double p = C(n - k, l) * pow(1.0 / (m - i), l) *
                     pow(1 - 1.0 / (m - i), n - k - l);
          dp[i + 1][nmx][k + l] += dp[i][j][k] * p;
        }
      }
  double ans = 0;
  for (int i = 0; i < n + 1; i++) ans += i * dp[m][i][n];
  cout << setiosflags(ios::fixed) << setprecision(20) << ans << endl;
}
int main() {
  run();
  return 0;
}
