#include <bits/stdc++.h>
using namespace std;
long long n, m, k;
long long read() {
  long long s = 0, f = 1;
  char ch = getchar();
  while (ch < '0' || ch > '9') {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    s = s * 10 + ch - '0';
    ch = getchar();
  }
  return s * f;
}
inline void print(long long *f, long long len) {
  for (long long i = 0; i < len; i++) printf("%lld ", f[i]);
  puts("");
}
long long c[202];
double f[202][10101];
signed main() {
  n = read();
  long long x = read();
  double p = 1.0 * x / 2;
  for (long long i = 1, iend = n; i <= iend; ++i) c[i] = read();
  for (long long i = 1, iend = n; i <= iend; ++i) {
    m += c[i];
  }
  f[0][0] = 1;
  double ans = 0;
  for (long long i = 1, iend = n; i <= iend; ++i) {
    for (long long j = i, jend = 1; j >= jend; --j) {
      for (long long k = c[i], kend = m; k <= kend; ++k) {
        f[j][k] = f[j][k] + f[j - 1][k - c[i]] * j / (1.0 * (n - j + 1));
      }
    }
  }
  for (long long i = 1, iend = n; i <= iend; ++i) {
    for (long long j = 0, jend = m; j <= jend; ++j) {
      ans += f[i][j] * min((1.0 * n / i + 1) * p, 1.0 * j / i);
    }
  }
  printf("%.10lf", ans);
}
