#include <cstring>
#include <cmath>
#include <algorithm>
#include <cstdlib>
#include <cstdio>
#include <iostream>
#include <fstream>
#include <queue>

#define rep(i, l, r) for(int i = l; i <= r; i++)
#define down(i, l, r) for(int i = l; i >= r; i--)
#define MS 123456
#define MAX 1037471823
#define Q 100

using namespace std;

int n, t, g[MS];
double a, sum, f[MS], m[MS];

int main()
{
	scanf("%d%lf", &n, &a);
	rep(i, 1, n) scanf("%lf", &m[i]);
	rep(i, 1, n) g[i] = int(a*i+1e-6);
	rep(i, 1, n)
	{
		t = min(i-1, Q);
		sum = f[i-t]/m[i-t]*(i-t-g[i-t]/2)/(i-g[i-t]/2);
		rep(j, g[i-t]+1, g[i]) sum += m[j]/(i-j);
		f[i] = sum * m[i];
		printf("%.6lf\n", f[i]);
	}
	return 0;
}