#include <bits/stdc++.h>
using namespace std;
double dp[60][60][60], mul[60][60][60], sum[60][60][60];
int a[60], n, m;
long long c[60][60];
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= m; i++) {
    scanf("%d", &a[i]);
  }
  c[0][0] = 1;
  c[1][0] = c[1][1] = 1;
  for (int i = 2; i <= 50; i++) {
    c[i][0] = 1;
    for (int j = 1; j <= i; j++) {
      c[i][j] = (c[i - 1][j] + c[i - 1][j - 1]);
    }
  }
  for (int i = 1; i <= 50; i++) {
    mul[i][0][0] = 1.0;
    for (int j = 1; j <= 50; j++) {
      mul[i][j][0] = mul[i][j - 1][0] * 1.0 / (1.0 * i);
      for (int k = 1; k <= 50; k++) {
        mul[i][j][k] = mul[i][j][k - 1] * 1.0 * (i - 1);
      }
    }
  }
  dp[0][0][0] = 1.0;
  for (int i = 1; i <= m; i++) {
    for (int j = 0; j <= n; j++) {
      for (int k = 0; k <= 50; k++) {
        for (int u = 0; u <= j; u++) {
          if (u <= a[i] * k) {
            if (u > a[i] * (k - 1)) {
              double su = 0.0;
              for (int v = 0; v <= k; v++) {
                su += dp[i - 1][j - u][v] * 1.0;
              }
              dp[i][j][k] += c[j][u] * mul[i][j][j - u] * su;
              if (i == 2 && j == 2 && k == 2) {
              }
            } else {
              dp[i][j][k] += c[j][u] * mul[i][j][j - u] * dp[i - 1][j - u][k];
              if (i == 2 && j == 2 && k == 2) {
              }
            }
          }
        }
      }
    }
  }
  double ans = 0;
  for (int i = 1; i <= 50; i++) {
    ans += i * dp[m][n][i];
  }
  printf("%.9lf", ans);
}
