#include <bits/stdc++.h>
using namespace std;
double c, pro[2][10001], dp[2][10001];
int n, x, ts;
int main() {
  int i, j, s, p, q, flag;
  scanf("%d%d", &n, &x);
  c = x / 1e6;
  for (i = 0; i <= n; i++) {
    scanf("%d", &ts);
    pro[0][i] = ts / 1e6;
  }
  flag = 0;
  for (i = n - 1; i >= 0; i--) {
    for (j = 0; j <= i; j++) {
      dp[1 - flag][j] = pro[1 - flag][j] = 0;
      if (pro[flag][j + 1] == 0 && pro[flag][j] == 0) continue;
      double proe = pro[flag][j + 1] * (j + 1) /
                    (pro[flag][j] * (i + 1 - j) + pro[flag][j + 1] * (j + 1));
      pro[1 - flag][j] =
          (pro[flag][j + 1] * (j + 1) + pro[flag][j] * (i + 1 - j)) / (i + 1);
      dp[1 - flag][j] = max(dp[1 - flag][j], proe * (dp[flag][j + 1] + 1) +
                                                 (1 - proe) * dp[flag][j] - c);
    }
    pro[1 - flag][i + 1] = dp[1 - flag][i + 1] = 0;
    flag ^= 1;
  }
  printf("%.20f\n", dp[flag][0]);
  return 0;
}
