#include <bits/stdc++.h>
int n, x;
int c[11111];
double F[111][11111], All;
double fac[1111];
double C(int n, int r) { return fac[n] / fac[r] / fac[n - r]; }
double min(double x, double y) { return (x < y) ? x : y; }
void pack() {
  F[0][0] = 1;
  register int i, ii, iii;
  for (i = 1; i <= n; i++)
    for (ii = i; ii; ii--)
      for (iii = c[i]; iii <= 1e4; iii++) F[ii][iii] += F[ii - 1][iii - c[i]];
}
int main() {
  scanf("%d%d", &n, &x);
  register int i, ii;
  for (i = fac[0] = 1; i <= 1000; i++) fac[i] = fac[i - 1] * i;
  for (i = 1; i <= n; i++) scanf("%d", c + i), All += c[i];
  pack();
  double ans = 0;
  for (i = 0; i < n; i++)
    for (ii = 0; ii <= All; ii++)
      ans += F[i][ii] *
             min((All - ii) / (n - i), x * ((n * 1.0 / (n - i) + 1) / 2.0)) /
             C(n, i);
  printf("%.15lf\n", ans);
}
