#include <bits/stdc++.h>
using namespace std;

#define rep(i,x,y) for(int i=(x);i<(y);++i)
#define debug(x) #x << "=" << (x)

#ifdef DEBUG
#define _GLIBCXX_DEBUG
#define print(x) std::cerr << debug(x) << " (L:" << __LINE__ << ")" << std::endl
#else
#define print(x)
#endif

typedef pair<int,int> pii;
const int inf=1e9;
const int64_t inf64=1e18;
const long double eps=1e-10;

template <typename T> ostream &operator<<(ostream &os, const vector<T> &vec){
    os << "[";
    for (const auto &v : vec) {
    	os << v << ",";
    }
    os << "]";
    return os;
}

void solve(int n,long double l){
    vector<long double> s(n),t(n),u(n);
    rep(i,0,n) cin >> s[i] >> t[i] >> u[i];
    {
        vector<long double> s_,t_,u_;
        s_.push_back(0);
        t_.push_back(s.front());
        u_.push_back(0);
        s_.push_back(s.front());
        t_.push_back(t.front());
        u_.push_back(u.front());
        rep(i,1,s.size()){
            if(s[i]>t[i-1]){
                s_.push_back(t[i-1]);
                t_.push_back(s[i]);
                u_.push_back(0);
            }
            s_.push_back(s[i]);
            t_.push_back(t[i]);
            u_.push_back(u[i]);
        }
        s_.push_back(t.back());
        t_.push_back(86400);
        u_.push_back(0);
        swap(s,s_);
        swap(t,t_);
        swap(u,u_);
    }

    auto simulation=[&](long double x,long double initial_value){
        vector<long double> res;
        long double k=initial_value;
        res.push_back(k);
        rep(i,0,s.size()){
            k+=(x-u[i])*(t[i]-s[i]);
            k=min(k,l);
            res.push_back(k);
        }
        return res;
    };

    auto ok=[&](long double x){
        auto res1=simulation(x,l);
        auto res2=simulation(x,res1.back());
        rep(i,0,res1.size()) if(res1[i]<0) return false;
        rep(i,0,res2.size()) if(res2[i]<0) return false;
        rep(i,0,res1.size()) if(res1[i]<=res2[i]) return true;
        return false;
    };

    long double lb=0,ub=inf64;
    rep(i,0,128){
        auto mid=(lb+ub)/2;
        if(ok(mid)) ub=mid;
        else lb=mid;
    }
    cout << ub << endl;
}

int main(){
    std::cin.tie(0);
    std::ios::sync_with_stdio(false);
    cout.setf(ios::fixed);
    cout.precision(10);
    for(;;){
        int n;
        long double l;
        cin >> n >> l;
        if(!n and !l) break;
        solve(n,l);
    }
    return 0;
}