#include <bits/stdc++.h>
using namespace std;
const double pi = acos(-1.0);
const double eps = 1e-11;
int data[55], n, m;
long long nck[55][55];
double memo[55][55][55];
double tot;
double rec(int r, int s, int mx) {
  if (r == m) return s == 0 ? mx * tot : 0;
  double &ret = memo[r][s][mx];
  if (ret == ret) return ret;
  double res = 0;
  for (int i = 0; i <= s; i++)
    res +=
        (nck[s][i] * rec(r + 1, s - i, max(mx, (i + data[r] - 1) / data[r])));
  return ret = res;
}
int main() {
  std::ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  memset(nck, 0, sizeof(nck));
  memset(memo, -1, sizeof(memo));
  nck[0][0] = 1;
  for (int i = 1; i < 55; i++) {
    nck[i][0] = 1;
    for (int j = 1; j <= i; j++) {
      nck[i][j] = nck[i - 1][j] + nck[i - 1][j - 1];
    }
  }
  cout << fixed;
  cout << setprecision(10);
  cin >> n >> m;
  for (int i = 0; i < m; i++) cin >> data[i];
  tot = 1;
  for (int i = 0; i < n; i++) tot /= m;
  cout << rec(0, n, 0);
  return 0;
}
