#include <bits/stdc++.h>
const int MAXN = 105;
const int MAXM = 10005;
double C[MAXN][MAXN];
void init() {
  C[0][0] = 1;
  for (int i = 1; i < MAXN; i++) {
    C[i][0] = 1;
    for (int j = 1; j <= i; j++) {
      C[i][j] = C[i - 1][j - 1] + C[i - 1][j];
    }
  }
}
double dp[MAXN][MAXM];
const double eps = 1e-9;
int main() {
  init();
  int n, x;
  std::scanf("%d%d", &n, &x);
  dp[0][0] = 1;
  int s = 0;
  for (int i = 0, x; i < n; i++) {
    scanf("%d", &x);
    s += x;
    for (int j = n; j; j--) {
      for (int k = MAXM - 1; k >= x; k--) {
        dp[j][k] += dp[j - 1][k - x];
      }
    }
  }
  double ans = 0;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < s + 1; j++) {
      ans += (dp[i][j] / C[n][i]) *
             std::min((s - j) * 1.0 / (n - i), (n * 1.0 / (n - i) + 1) * x / 2);
    }
  }
  printf("%.10f\n", ans);
}
