#include <bits/stdc++.h>
using namespace std;
int A[100];
int N, M;
double fact(int n) { return n ? (fact(n - 1) * n) : 1; }
double comb(int m, int n) {
  if (m > n) return 0;
  return fact(n) / fact(m) / fact(n - m);
}
double dp[60][60][60];
double rec(int k, int left, int mx) {
  if (k == M) return left ? 0 : mx;
  double &r = (dp[k][left][mx]);
  if (r != -1) return r;
  r = 0;
  for (int i = 0; i <= left; ++i) {
    int nmx = (i + A[k] - 1) / A[k];
    r += rec(k + 1, left - i, max(mx, nmx)) * comb(i, left);
  }
  return r;
}
int main() {
  for (int i = 0; i < 60; ++i)
    for (int j = 0; j < 60; ++j)
      for (int k = 0; k < 60; ++k) dp[i][j][k] = -1.0;
  cin >> N >> M;
  for (int i = 0; i < M; ++i) cin >> A[i];
  double ans = rec(0, N, 0);
  ans /= pow(M * 1.0, N);
  printf("%0.12lf\n", ans);
  return 0;
}
