#include <stdio.h>
#include <vector>
#include <algorithm>
#include <climits>
struct node{
int l,r,cost,dur;
};
bool cmp(const node &x, const node &y){
return x.dur<y.dur;
}
using namespace std;
int main(){
int n,x;
scanf("%d %d",&n,&x);
vector<node> A(n);
for(int i=0; i<n; ++i){
int l,r,c;
scanf("%d %d %d",&l,&r,&c);
A[i].l=l;
A[i].r=r;
A[i].cost=c;
A[i].dur=r-l+1;
}
sort(A.begin(),A.end(),cmp);
int ans=INT_MAX;
for(int i=0; i+1<n; ++i){
int targ=x-A[i].dur;
if(targ<1)
continue;
int low=i+1,up=n-1;
while(up>low){
int mid=(up+low)>>1;
int dur=A[mid].dur;
if(dur<targ){
if(mid<n)
if(A[mid+1].dur=targ){
low=mid+1;
up=mid+1;
break;
}
low=mid+1;
}
else
up=mid;
}
int j=(low+up)>>1;
if(j<=i)
continue;
int r0=A[i].r, l0=A[i].l;
int cost0=A[i].cost;
while(1){
int dur=A[j].dur;
if(dur>targ)
break;
int r=A[j].r,l=A[j].l;
int cost1=A[j].cost+cost0;
if(cost1<ans)
if(r0<l || l0>r)
ans=cost1;
++j;
if(j>=n)
break;
}
}
if(ans<INT_MAX)
printf("%d\n",ans);
else
printf("-1");
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxjbGltaXRzPgpzdHJ1Y3Qgbm9kZXsKICAgIGludCBsLHIsY29zdCxkdXI7Cn07CmJvb2wgY21wKGNvbnN0IG5vZGUgJngsIGNvbnN0IG5vZGUgJnkpewogICAgcmV0dXJuIHguZHVyPHkuZHVyOwp9CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBtYWluKCl7CiAgIGludCBuLHg7CiAgIHNjYW5mKCIlZCAlZCIsJm4sJngpOwogICB2ZWN0b3I8bm9kZT4gQShuKTsKICAgZm9yKGludCBpPTA7IGk8bjsgKytpKXsKICAgICAgICBpbnQgbCxyLGM7CiAgICAgICAgc2NhbmYoIiVkICVkICVkIiwmbCwmciwmYyk7CiAgICAgICAgQVtpXS5sPWw7CiAgICAgICAgQVtpXS5yPXI7CiAgICAgICAgQVtpXS5jb3N0PWM7CiAgICAgICAgQVtpXS5kdXI9ci1sKzE7ICAKICAgfQogICBzb3J0KEEuYmVnaW4oKSxBLmVuZCgpLGNtcCk7CiAgIGludCBhbnM9SU5UX01BWDsKICAgZm9yKGludCBpPTA7IGkrMTxuOyArK2kpewogICAgICAgaW50IHRhcmc9eC1BW2ldLmR1cjsKICAgICAgIGlmKHRhcmc8MSkKICAgICAgICAgICAgY29udGludWU7CiAgICAgICBpbnQgbG93PWkrMSx1cD1uLTE7CiAgICAgICB3aGlsZSh1cD5sb3cpewogICAgICAgICAgICBpbnQgbWlkPSh1cCtsb3cpPj4xOwogICAgICAgICAgICBpbnQgZHVyPUFbbWlkXS5kdXI7CiAgICAgICAgICAgIGlmKGR1cjx0YXJnKXsKICAgICAgICAgICAgICAgIGlmKG1pZDxuKQogICAgICAgICAgICAgICAgICAgIGlmKEFbbWlkKzFdLmR1cj10YXJnKXsKICAgICAgICAgICAgICAgICAgICAgICAgbG93PW1pZCsxOwogICAgICAgICAgICAgICAgICAgICAgICB1cD1taWQrMTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgbG93PW1pZCsxOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgdXA9bWlkOwogICAgICAgIH0KICAgICAgIGludCBqPShsb3crdXApPj4xOyAKICAgICAgIGlmKGo8PWkpCiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgaW50IHIwPUFbaV0uciwgbDA9QVtpXS5sOwogICAgICAgaW50IGNvc3QwPUFbaV0uY29zdDsKICAgICAgIHdoaWxlKDEpewogICAgICAgICAgICBpbnQgZHVyPUFbal0uZHVyOwogICAgICAgICAgICBpZihkdXI+dGFyZykKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBpbnQgcj1BW2pdLnIsbD1BW2pdLmw7CiAgICAgICAgICAgIGludCBjb3N0MT1BW2pdLmNvc3QrY29zdDA7CiAgICAgICAgICAgIGlmKGNvc3QxPGFucykKICAgICAgICAgICAgICAgIGlmKHIwPGwgfHwgbDA+cikKICAgICAgICAgICAgICAgICAgICBhbnM9Y29zdDE7CiAgICAgICAgICAgICsrajsKICAgICAgICAgICAgaWYoaj49bikKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgfQogICB9CiAgIGlmKGFuczxJTlRfTUFYKQogICAgICAgIHByaW50ZigiJWRcbiIsYW5zKTsKICAgIGVsc2UKICAgICAgICBwcmludGYoIi0xIik7CiAgIHJldHVybiAwOwp9