#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAX = 191980;
int n;
double engry, s[MAX], k[MAX], u[MAX];
int alpha(int a, int b,int c){
return 2 * k[c] * b * a * a * (a - u[c]) ;
}
double speed(double x, int i){
double l = max(u[i], double(0)), r = 114514.1, id;
int _114514=60;
while(_114514--){
id = (l + r) / 2;
if(alpha(id,x,i) > -s[i]) {
l = id;
}
else{
r = id;
}
}
return (l + r) / 2;
}
double fo(double x){
double sum = 0;
for(int i = 1; i <= n; i++){
double v = speed(x, i);
sum += k[i] * (v - u[i]) * (v - u[i]);
}
return sum;
}
int juk(int ans,int mid){
ans=0;
for(int i = 1; i <= n; i++){
ans += s[i] / speed(mid, i);
}
return ans;
}
int main(){
cin>>n>>engry;
for(int i = 1; i <= n; i++){
cin>>s[i]>>k[i]>>u[i];
k[i]*=s[i];
}
double l = -114514, r = 0, m;
int wi = 100;
while(wi--){
m = (l + r) / 2;
if(fo(m) <= engry){
l = m;
}
else {
r = m;
}
}
m = (l + r) / 2;
double ans = 0;
ans=juk(ans,m);
cout<<fixed<<setprecision(10)<<endl;
return 0;
}