#include <bits/stdc++.h>
using namespace std;
const double pi = acos(-1.0);
int n, m;
int a[64];
double d[52][52][52];
double cnk[52][52];
int main() {
  memset(cnk, 0, sizeof cnk);
  ;
  cnk[0][0] = 1;
  for (int i = 0, _n = (52); i < _n; i++)
    if (i > 0)
      for (int j = 0, _n = (52); j < _n; j++)
        if (j == 0)
          cnk[i][0] = 1;
        else
          cnk[i][j] = cnk[i - 1][j - 1] + cnk[i - 1][j];
  scanf("%d%d", &n, &m);
  for (int i = 0, _n = (m); i < _n; i++) {
    scanf("%d", a + i);
  }
  memset(d, 0, sizeof d);
  ;
  d[0][0][0] = 1;
  for (int i = 0, _n = (m); i < _n; i++)
    for (int _b = (n), here = (0); here <= _b; here++) {
      int que = (here + a[i] - 1) / a[i];
      for (int _b = (n - here), was = (0); was <= _b; was++)
        for (int _b = (n), mxq = (0); mxq <= _b; mxq++)
          d[i + 1][was + here][max(mxq, que)] +=
              d[i][was][mxq] * cnk[was + here][here];
    }
  double denom = 1;
  for (int i = 0, _n = (n); i < _n; i++) denom *= m;
  double res = 0;
  for (int _b = (n), mxq = (0); mxq <= _b; mxq++) res += mxq * d[m][n][mxq];
  res /= denom;
  printf("%.15lf\n", res);
  return 0;
}
