#include <bits/stdc++.h>
using namespace std;
const int N = 55;
double dp[N][N];
double ways[N];
int a[N];
double C[N][N];
int main() {
  for (int i = 0; i < N; i++) C[i][0] = 1;
  for (int i = 1; i < N; i++)
    for (int j = 1; j < N; j++) C[i][j] = C[i - 1][j - 1] + C[i - 1][j];
  int n, m;
  cin >> n >> m;
  for (int i = 1; i <= m; i++) cin >> a[i];
  double ans = 0;
  for (int x = 1; x <= n; x++) {
    memset(dp, 0, sizeof dp);
    dp[0][0] = 1;
    for (int i = 1; i <= m; i++) {
      int mx = min(n, x * a[i]);
      for (int j = 0; j <= mx; j++)
        for (int c = j; c <= n; c++)
          dp[i][c] = dp[i][c] + C[n - c + j][j] * dp[i - 1][c - j];
    }
    ways[x] = dp[m][n];
    ans += x * (ways[x] - ways[x - 1]);
  }
  cout << setprecision(10) << fixed << ans / pow(m, n) << endl;
}
