#include <iostream>
#include <iomanip>
#include <vector>
#include <string>
#include <algorithm>
#include <deque>
#include <stdio.h>
#include <string.h>
#include <math.h>
using namespace std;

struct Water {
    double t; int v;
};

int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);

    int n, l;
    cin >> n >> l;
    deque<Water> q;
    double s = 0;
    q.push_back({ 0, l });

    for (int i = 0; i < n; i++) {
        int t, v;
        cin >> t >> v;
        for (int k = v;;) {
            auto& o = q.front();
            if (o.v <= k) {
                k -= o.v;
                s -= o.t * o.v;
                q.pop_front();
                if (k == 0) break;
            } else {
                o.v -= k;
                s -= o.t * k;
                break;
            }
        }
        double x = t;
        s += x * v;
        for (;;) {
            if (q.empty()) {
                q.push_back({ x, v });
                break;
            }
            auto& o = q.back();
            if (x > o.t) {
                q.push_back({ x, v });
                break;
            } else {
                x = (x * v + o.t * o.v) / (v + o.v);
                v += o.v;
                q.pop_back();
            }
        }
        cout << fixed << setprecision(9) << s / l << '\n';
    }

    return 0;
}