#include <bits/stdc++.h>
using namespace std;
const int N = 55;
const long double EPS = 1e-9;
int n, m;
int a[N];
long long fact[N];
long long C[N][N];
long double dp[N][N][N];
int main() {
  for (int i = 0; i <= 50; ++i) C[0][i] = 1;
  for (int i = 1; i <= 50; ++i) {
    for (int j = i; j <= 50; ++j) C[i][j] = C[i][j - 1] + C[i - 1][j - 1];
  }
  cin >> m >> n;
  for (int i = 1; i <= n; ++i) cin >> a[i];
  dp[0][0][0] = 1.00;
  for (int i = 0; i < n; ++i)
    for (int j = 0; j <= m; ++j)
      for (int k = 0; k <= 50; ++k)
        for (int x = 0; x <= m - j; ++x) {
          int val = (x + a[i + 1] - 1) / a[i + 1];
          long double frac = (long double)C[x][m - j] /
                             pow((long double)n - i, (long double)x);
          frac *=
              pow((long double)(n - i - 1) / (n - i), (long double)m - j - x);
          dp[i + 1][j + x][max(val, k)] += dp[i][j][k] * frac;
        }
  long double ans = 0;
  for (int val = 0; val <= 50; ++val) {
    ans += dp[n][m][val] * val;
  }
  cout << fixed << setprecision(15) << ans << endl;
  return 0;
}
