#include<cstdio>
using namespace std;
const int N=5e5+5;
int n,l,r;
double ans,ll,v,d[N][2];
int read()
{
	char ch=getchar();
	int x=0;
	while (ch<'0' || ch>'9') ch=getchar();
	while (ch>='0' && ch<='9') x=x*10+ch-'0',ch=getchar();
	return x;
}
void merge(int x)
{
	d[x][0]=(d[x][0]*d[x][1]+d[x+1][0]*d[x+1][1])/(d[x][1]+d[x+1][1]);
	d[x][1]+=d[x+1][1];
}
int main()
{
	n=read(),ll=read(),l=1;
	for (int i=1;i<=n;i++)
	{
		d[++r][0]=read(),d[r][1]=read();
		v+=d[r][1],ans+=d[r][0]*d[r][1];
		while (v>ll)
		{
			if (v-d[l][1]>=ll)
			{
				v-=d[l][1];
				ans-=d[l][0]*d[l][1];
				l++;
			}
			else
			{
				d[l][1]-=v-ll;
				ans-=(v-ll)*d[l][0];
				v=ll;
			}
		}
		while (r>l && d[r][0]<=d[r-1][0]) merge(--r);
		printf("%lf\n",ans/ll);
	}
	return 0;
}
