#include <bits/stdc++.h>
using namespace std;
const int MAXn = 50 + 10;
int cap[MAXn];
double dp[MAXn][MAXn][MAXn];
double sum[MAXn][MAXn][MAXn];
int main() {
  int n, m;
  cin >> n >> m;
  for (int i = 1; i <= m; i++) cin >> cap[i];
  for (int j = 0; j <= n; j++) dp[1][j][(j + cap[1] - 1) / cap[1]] = 1;
  for (int j = 0; j <= n; j++) {
    sum[1][j][0] = dp[1][j][0];
    for (int k = 1; k <= n; k++) sum[1][j][k] = sum[1][j][k - 1] + dp[1][j][k];
  }
  for (int i = 2; i <= m; i++)
    for (int j = 0; j <= n; j++) {
      for (int k = 0; k <= j; k++) {
        double pr = 1;
        for (int h = 1; h <= j; h++) pr *= double(i - 1) / double(i);
        for (int h = 0; h <= j; h++) {
          int len = (h + cap[i] - 1) / cap[i];
          if (len > k) break;
          if (len == k) {
            dp[i][j][k] += pr * sum[i - 1][j - h][k];
          } else {
            dp[i][j][k] += pr * dp[i - 1][j - h][k];
          }
          pr *= double(j - h) / double(h + 1) / double(i - 1);
        }
      }
      sum[i][j][0] = dp[i][j][0];
      for (int k = 1; k <= n; k++)
        sum[i][j][k] = sum[i][j][k - 1] + dp[i][j][k];
    }
  double exp = 0;
  for (int i = 0; i <= n; i++) exp += dp[m][n][i] * i;
  cout.precision(20);
  cout << exp << endl;
}
