#include <bits/stdc++.h>
using namespace std;
const long double eps = 1e-9;
long long choose[60][60], N, M, arr[60];
long double dp[60][60][60], p[60];
long double sol(int ind, int rem, int mx) {
  if (ind == M) return ((rem == 0) ? mx : 0);
  if (dp[ind][rem][mx] > (-eps)) return dp[ind][rem][mx];
  long double& ret = dp[ind][rem][mx];
  ret = 0;
  for (int i = 0; i <= rem; i++) {
    long double prob = choose[rem][i] * p[i];
    int mm = (i + arr[ind] - 1) / arr[ind];
    ret += prob * sol(ind + 1, rem - i, max(mx, mm));
  }
  return ret;
}
int main() {
  int i, j, k;
  for (i = 0; i < 60; i++) choose[i][0] = choose[i][i] = 1;
  for (i = 0; i < 60; i++)
    for (j = 1; j < i; j++)
      choose[i][j] = choose[i - 1][j - 1] + choose[i - 1][j];
  cin >> N >> M;
  p[0] = 1;
  for (i = 1; i < 60; i++) p[i] = p[i - 1] * (1.0 / M);
  for (i = 0; i < 60; i++)
    for (j = 0; j < 60; j++)
      for (k = 0; k < 60; k++) dp[i][j][k] = -1.0;
  for (i = 0; i < M; i++) cin >> arr[i];
  printf("%.10lf\n", (double)sol(0, N, 0));
  return 0;
}
