#include <bits/stdc++.h>

#define ll long long
#define pb push_back
#define sz(a) a.size()
#define endl '\n'
#define inf int(1e10)
#define mod inf+7
#define fast_io() std::ios::sync_with_stdio(0)
#define rep(i,a,b) for( int i=a; i<b; i++)

using namespace std;

 struct voucher{
  int l;
  int r;
  int cost;
  int dur;
 };

bool comp(voucher a, voucher b)
  {
    if ( (a.dur)<(b.dur))
      return 1;
    else if (a.dur==b.dur)
      return a.cost<=b.cost;
    else
      return 0;
  }
  int main()
   {
    int n,x;
    voucher t[200005];//TO CHANGE LATER
    cin>>n>>x;
    for(int i=0;i<n;i++)
      {
        cin>>t[i].l>>t[i].r>>t[i].cost;
        t[i].dur=t[i].r-t[i].l+1;
      }

   sort(t,t+n,comp);

   int i=0; int j=n-1;
   int ans=inf;
   while(i<j)
   {
     if (t[i].dur+t[j].dur==x)
     {
       if (t[i].r<t[j].l || t[j].r<t[i].l)
         ans=min(ans,t[i].cost+t[j].cost);

        i--;
     }
      if (t[i].dur+t[j].dur>x)
        j--;
      if (t[i].dur+t[j].dur<x)
        i++;
   }

   if (ans==inf )
    cout<<-1;
   else
    cout<<ans;
   }
