#include<bits/stdc++.h>
#define M 500005
using namespace std;
struct node{double t,v;}q[M]={0},p;
int head=0,tail=0;
int main(){
	double l=0,ll=0,now=0;
	int n; scanf("%d",&n);
	scanf("%lf",&ll); l=ll;
	while(n--){
		scanf("%lf%lf",&p.t,&p.v);
		while(p.v>l){
			if(q[head].v+l<=p.v)
			now-=q[head].v*q[head].t,l+=q[head++].v;
			else{
				double x=p.v-l;
				now-=x*q[head].t;
				l+=x;
				q[head].v-=x;
			}
		}
		l-=p.v; now+=p.v*p.t; q[++tail]=p;
		while(head<tail&&q[tail-1].t>=q[tail].t){
			q[tail-1].t=(q[tail-1].t*q[tail-1].v+q[tail].t*q[tail].v)/(q[tail-1].v+q[tail].v);
			q[tail-1].v+=q[tail].v;
			tail--;
		}
        printf("%.10lf\n",now/(ll-l));
    }
}