#include <bits/stdc++.h>
using namespace std;
const int maxn = 60;
int a[maxn];
int n, m;
double dp[maxn][maxn][maxn];
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 0; i < m; i++) scanf("%d", &a[i]);
  dp[0][0][0] = 1.0;
  for (int i = 0; i <= n; i++)
    for (int j = 0; j < m; j++)
      for (int k = 0; k <= n; k++)
        for (int x = 0; i + x <= n; x++) {
          int kk = max(k, (int)ceil((double)x / a[j]));
          double pp = 1.0 / (j + 1);
          double p = 1.0;
          int iii;
          for (iii = 0; iii < i; iii++) p *= (1.0 - pp);
          for (iii = 0; iii < x; iii++) p *= ((i + x - iii) * pp / (iii + 1));
          dp[i + x][j + 1][kk] += dp[i][j][k] * p;
        }
  double ans = 0;
  for (int i = 0; i < n + 1; i++) ans += i * dp[n][m][i];
  printf("%.20lf\n", ans);
  return 0;
}
