#include<bits/stdc++.h>
using namespace std;
struct point
{
	double x,y;
	friend point operator -(point a,point b){return (point){a.x-b.x,a.y-b.y};}
	friend point operator +(point a,point b){return (point){a.x+b.x,a.y+b.y};}
	friend double operator *(point a,point b){return a.x*b.y-a.y*b.x;}
}a[2000010];
point gp(point p,point q,double x)
{
	return (point){x,(p.y*(q.x-x)+q.y*(x-p.x))/(q.x-p.x)};
}
int main()
{
	int n,l,head=1,tail=1;a[1]=(point){0.0,0.0};
	scanf("%d%d",&n,&l);
	for (int i=1;i<=n;i++)
	{
		point p;scanf("%lf%lf",&p.y,&p.x);p.y*=p.x;
		head++;a[head]=a[head-1]-p;
		while ((head!=tail)&&(a[tail+1].x-a[head].x>l)) tail++;
		if (a[tail].x-a[head].x>l) a[tail]=gp(a[tail],a[tail+1],a[head].x+l);	
		while ((tail+1<head)&&((a[head]-a[head-2])*(a[head-1]-a[head-2])>0)) {a[head-1]=a[head];head--;}
		printf("%.10lf\n",(a[tail].y-a[head].y)/l);
	}
}


