#include <bits/stdc++.h>
using namespace std;
long long C[51][51];
void buildComb() {
  for (int i = 0; i < 51; ++i)
    for (int j = 0; j <= i; ++j)
      C[i][j] = (j == 0 ? 1 : (i == 0 ? 0 : C[i - 1][j - 1] + C[i - 1][j]));
}
int a[50];
int n, m;
double mem[51][51][51];
double rec(int i, int s, int maxLengSoFar) {
  if (i == m) return (s == 0 ? maxLengSoFar : 0);
  double &ret = mem[i][s][maxLengSoFar];
  if (ret != -1) return ret;
  double p = 1;
  ret = 0;
  for (int j = 0; j <= s; ++j) {
    int maxlen = (j + a[i] - 1) / a[i];
    ret += C[s][j] * p * rec(i + 1, s - j, max(maxlen, maxLengSoFar));
    p /= m;
  }
  return ret;
}
void init() {
  for (int i = 0; i < 51; ++i)
    for (int j = 0; j < 51; ++j)
      for (int k = 0; k < 51; ++k) mem[i][j][k] = -1;
}
int main() {
  buildComb();
  init();
  cin >> n >> m;
  for (int i = 0; i < m; i++) cin >> a[i];
  cout << std::fixed << std::setprecision(20) << rec(0, n, 0);
  return 0;
}
