#include <bits/stdc++.h>
const double PI = acos(-1);
using namespace std;
int n, m;
int a[100100];
double f1[55];
double pw[55];
double c(int x, int y) {
  double r = 1;
  r *= f1[x];
  r /= f1[y];
  r /= f1[x - y];
  return r;
}
double dp[55][55][55];
double f(int i, int mx, int m1) {
  if (i == m) {
    if (m1 == 0) {
      return mx;
    }
    return 0;
  }
  if (dp[i][mx][m1] + 1 > 1e-9) {
    return dp[i][mx][m1];
  }
  double r = 0;
  for (int j = 0; j <= m1; j++) {
    r += (c(m1, j) * pw[j] *
          f(i + 1, max(mx, (int)ceil(1.0 * j / a[i])), m1 - j));
  }
  return dp[i][mx][m1] = r;
}
int main() {
  f1[0] = 1;
  for (int i = 1; i < 55; i++) {
    f1[i] = f1[i - 1] * i;
  }
  ios::sync_with_stdio(0);
  cin >> n >> m;
  memset(dp, -1, sizeof(dp));
  for (int i = 0; i < m; i++) {
    cin >> a[i];
  }
  pw[0] = 1;
  for (int i = 1; i < 55; i++) {
    pw[i] = pw[i - 1] / m;
  }
  cout << fixed << setprecision(30) << f(0, 0, n) << endl;
  return 0;
}
