#include <cstdio>
struct data
{
	double t, v; 
} que[500005]; 
int main()
{
	// freopen("ARC072-F.in", "r", stdin); 
	int n, lim, he = 1, ta = 0; 
	double sum_v = 0, sum_t = 0; 
	scanf("%d%d", &n, &lim); 
	for (int i = 0; i < n; i++)
	{
		data x; 
		scanf("%lf%lf", &x.t, &x.v); 
		sum_v += x.v; 
		sum_t += x.v * x.t; 
		while (lim < sum_v)
		{
			if (sum_v - lim >= que[he].v)
			{
				sum_t -= que[he].v * que[he].t;
				sum_v -= que[he++].v; 
			}
			else
			{
				sum_t -= que[he].t * (sum_v - lim); 
				que[he].v -= sum_v - lim; 
				sum_v = lim; 
			}
		}
		printf("%.8lf\n", sum_t / sum_v);
		while (he <= ta && que[ta].t >= x.t)
		{
			x.t = (que[ta].t * que[ta].v + x.t * x.v) / (que[ta].v + x.v); 
			x.v += que[ta].v; 
			ta--; 
		}
		que[++ta] = x; 
	}
	return 0; 
}
