#include <bits/stdc++.h>
using namespace std;
const int N = 10005;
double dp[2][N], p[2][N];
int n;
double c;
int main() {
  ios::sync_with_stdio(false);
  scanf("%d%lf", &n, &c);
  c /= 1e6;
  for (int i = 0; i <= n; i++) {
    scanf("%lf", &p[0][i]);
    p[0][i] /= 1e6;
    dp[0][i] = i;
  }
  int cur = 1;
  for (int i = n - 1; i >= 0; --i, cur ^= 1) {
    int pre = cur ^ 1;
    for (int j = 0; j <= i; j++) {
      double p1 = p[pre][j + 1] * (j + 1) / (i + 1),
             p2 = p[pre][j] * (i + 1 - j) / (i + 1);
      p[cur][j] = p1 + p2;
      if (!p[cur][j]) continue;
      double P = p1 / (p1 + p2);
      dp[cur][j] =
          max(P * dp[pre][j + 1] + (1 - P) * dp[pre][j] - c, double(j));
    }
  }
  printf("%.10lf\n", dp[cur ^ 1][0]);
  return 0;
}
