#include <bits/stdc++.h>
int read() {
  int f = 0;
  char ch;
  while (!isdigit(ch = getchar()))
    ;
  do f = 10 * f + (ch ^ '0');
  while (isdigit(ch = getchar()));
  return f;
}
const int N_MAX = 103, C_MAX = 10003;
int c[N_MAX];
double f[N_MAX][C_MAX], binom[N_MAX][N_MAX];
int main() {
  int n = read(), x = read(), sum = 0;
  for (int i = 1; i <= n; ++i) c[i] = read();
  f[0][0] = 1;
  for (int k = 1; k <= n; ++k) {
    sum += c[k];
    for (int i = k; i; --i)
      for (int j = sum; j; --j) f[i][j] += f[i - 1][j - c[k]];
  }
  for (int i = 0; i <= n; ++i) {
    binom[i][0] = 1;
    for (int j = 1; j <= i; ++j)
      binom[i][j] = binom[i - 1][j] + binom[i - 1][j - 1];
  }
  double ans = 0;
  for (int i = 0; i < n; ++i)
    for (int j = 0; j <= sum; ++j)
      ans += f[i][j] / binom[n][i] *
             std::min((double)(sum - j) / (n - i),
                      ((double)n / (n - i) + 1) * x / 2);
  printf("%.10lf\n", ans);
  return 0;
}
