#include <bits/stdc++.h>
#define ll long long
using namespace std;
struct tmp {
ll b, h, w, d;
};
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
int n;ll v;
cin >> n >> v;
vector<tmp> a(n);
for (int i = 0; i < n; i++) {
cin >> a[i].b >> a[i].h >> a[i].w >> a[i].d;
}
if (v == 0) {
cout << fixed << setprecision(2) << 0.00 ;
return 0;
}
double lo = 0, hi = 1e7;
double ans = 0;
for (int i = 0; i < 100; i++) {
double mid = (lo + hi) / 2;
double sum = 0;
for (const auto &x : a) {
if (mid > x.b) {
double high = min(mid - x.b, (double)x.h);
sum += high * x.w * x.d;
}
}
if (sum < v) {
lo = mid;
} else {
ans = mid;
hi = mid;
}
}
cout << fixed << setprecision(2) << ans << endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnN0cnVjdCB0bXAgewogICAgbGwgYiwgaCwgdywgZDsKfTsKaW50IG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKE5VTEwpOwoKICAgIGludCBuO2xsIHY7CiAgICBjaW4gPj4gbiA+PiB2OwogICAgdmVjdG9yPHRtcD4gYShuKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgY2luID4+IGFbaV0uYiA+PiBhW2ldLmggPj4gYVtpXS53ID4+IGFbaV0uZDsKICAgIH0KICAgIGlmICh2ID09IDApIHsKICAgICAgICBjb3V0IDw8IGZpeGVkIDw8IHNldHByZWNpc2lvbigyKSA8PCAwLjAwIDsKICAgICAgICByZXR1cm4gMDsKICAgIH0KICAgIGRvdWJsZSBsbyA9IDAsIGhpID0gMWU3OyAKICAgIGRvdWJsZSBhbnMgPSAwOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMDA7IGkrKykgewogICAgICAgIGRvdWJsZSBtaWQgPSAobG8gKyBoaSkgLyAyOwogICAgICAgIGRvdWJsZSBzdW0gPSAwOwogICAgICAgIGZvciAoY29uc3QgYXV0byAmeCA6IGEpIHsKICAgICAgICAgICAgaWYgKG1pZCA+IHguYikgewogICAgICAgICAgICAgICAgZG91YmxlIGhpZ2ggPSBtaW4obWlkIC0geC5iLCAoZG91YmxlKXguaCk7CiAgICAgICAgICAgICAgICBzdW0gKz0gaGlnaCAqIHgudyAqIHguZDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoc3VtIDwgdikgewogICAgICAgICAgICBsbyA9IG1pZDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBhbnMgPSBtaWQ7CiAgICAgICAgICAgIGhpID0gbWlkOwogICAgICAgIH0KICAgIH0KICAgIGNvdXQgPDwgZml4ZWQgPDwgc2V0cHJlY2lzaW9uKDIpIDw8IGFucyA8PCBlbmRsOwogICAgcmV0dXJuIDA7Cn0K