#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);
freopen("FILL.INP","r",stdin);
freopen("FILL.OUT","w",stdout);
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+CiNkZWZpbmUgbGwgbG9uZyBsb25nCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnN0cnVjdCB0bXAgewogICAgbGwgYiwgaCwgdywgZDsKfTsKaW50IG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKE5VTEwpOwogICAgZnJlb3BlbigiRklMTC5JTlAiLCJyIixzdGRpbik7CiAgICBmcmVvcGVuKCJGSUxMLk9VVCIsInciLHN0ZG91dCk7CiAgICBpbnQgbjtsbCB2OwogICAgY2luID4+IG4gPj4gdjsKICAgIHZlY3Rvcjx0bXA+IGEobik7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIGNpbiA+PiBhW2ldLmIgPj4gYVtpXS5oID4+IGFbaV0udyA+PiBhW2ldLmQ7CiAgICB9CiAgICBpZiAodiA9PSAwKSB7CiAgICAgICAgY291dCA8PCBmaXhlZCA8PCBzZXRwcmVjaXNpb24oMikgPDwgMC4wMCA7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CiAgICBkb3VibGUgbG8gPSAwLCBoaSA9IDFlNzsgCiAgICBkb3VibGUgYW5zID0gMDsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMTAwOyBpKyspIHsKICAgICAgICBkb3VibGUgbWlkID0gKGxvICsgaGkpIC8gMjsKICAgICAgICBkb3VibGUgc3VtID0gMDsKICAgICAgICBmb3IgKGNvbnN0IGF1dG8gJnggOiBhKSB7CiAgICAgICAgICAgIGlmIChtaWQgPiB4LmIpIHsKICAgICAgICAgICAgICAgIGRvdWJsZSBoaWdoID0gbWluKG1pZCAtIHguYiwgKGRvdWJsZSl4LmgpOwogICAgICAgICAgICAgICAgc3VtICs9IGhpZ2ggKiB4LncgKiB4LmQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKHN1bSA8IHYpIHsKICAgICAgICAgICAgbG8gPSBtaWQ7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgYW5zID0gbWlkOwogICAgICAgICAgICBoaSA9IG1pZDsKICAgICAgICB9CiAgICB9CiAgICBjb3V0IDw8IGZpeGVkIDw8IHNldHByZWNpc2lvbigyKSA8PCBhbnMgPDwgZW5kbDsKICAgIHJldHVybiAwOwp9Cg==