#include <bits/stdc++.h>
using namespace std;
int main() {
  long double c[55][55];
  for (long long int i = 0; i < ((long long int)(55)); i++) c[i][0] = 1.0;
  for (long long int i = 0; i < ((long long int)(55)); i++) c[i][i] = 1.0;
  for (long long int i = 0; i < ((long long int)(55)); i++)
    for (long long int j = 0; j < ((long long int)(i)); j++)
      c[i][j] = c[i - 1][j] + c[i - 1][j - 1];
  long double dp[55][55][55];
  long long int n, m, a[55];
  cin >> n >> m;
  for (long long int i = 0; i < ((long long int)(m)); i++) cin >> a[i];
  for (long long int i = 0; i < ((long long int)(55)); i++)
    for (long long int j = 0; j < ((long long int)(55)); j++)
      for (long long int k = 0; k < ((long long int)(55)); k++)
        dp[i][j][k] = (i == 0 && j == 0 && k == n) ? 1 : 0;
  for (long long int i = 0; i < ((long long int)(m)); i++)
    for (long long int j = 0; j < ((long long int)(n + 1)); j++)
      for (long long int k = 0; k < ((long long int)(n + 1)); k++)
        for (long long int l = 0; l < ((long long int)(k + 1)); l++) {
          dp[i + 1][max((l - 1) / a[i] + 1, j)][k - l] += dp[i][j][k] * c[k][l];
        }
  long double ans = 0;
  for (long long int i = 0; i < ((long long int)(n + 1)); i++)
    ans += dp[m][i][0] * i;
  for (long long int i = 0; i < ((long long int)(n)); i++) ans /= (double)m;
  cout << setiosflags(ios::fixed) << setprecision(20) << ans << endl;
}
