#include<cstdio>
#include<cstring>
#include<algorithm>
#define N 500010
#define ll long long
using namespace std;
struct data{int x; double y;}d[N];
int n, op, cl, sum, x, sx;
double y, sy;
inline char gc(){
	static char now[1<<16], *S, *T;
	if(S==T){T=(S=now)+fread(now, 1, 1<<16, stdin); if(S==T)return EOF;}
	return *S++;
}
inline int read(){
	int x=0, f=1; char ch=gc();
	while(ch<'0'||ch>'9'){if(ch=='-')f=-1; ch=gc();}
	while(ch>='0'&&ch<='9'){x=x*10+ch-'0'; ch=gc();}
	return x*f;
}
int main(){
	n=read(); sum=read();
	op=1; cl=0; sx=sy=0;
	for(int i=1; i<=n; i++){
		y=read(); x=read(); y*=x;
		sx+=x; sy+=y;
		while(sx>sum){
			if(sx-d[op].x<sum){sy-=d[op].y; d[op].y-=d[op].y/d[op].x*(sx-sum); d[op].x-=sx-sum; sx=sum; sy+=d[op].y;}
			else{sx-=d[op].x; sy-=d[op].y; op++;}
		}
		printf("%.10f\n", sy/sum);
		while(op<=cl&&y/x<d[cl].y/d[cl].x){
			y+=d[cl].y; x+=d[cl].x; cl--;
		}
		d[++cl].x=x; d[cl].y=y;
	}
	return 0;
}