#include<bits/stdc++.h>
using namespace std;
#define X first
#define Y second
bool compare(const pair<pair<int,int>, int> &a,const pair<pair<int,int>, int> &b)
{
if(a.X.X != b.X.X)
return a.X.X < b.X.X;
else if(a.X.Y != b.X.Y)
return a.X.Y < b.X.Y;
else if(a.Y != b.Y)
return a.Y < b.Y;
}
int main()
{
int n, x;
cin >> n >> x;
vector<pair<pair<int, int>, int> > v;
int l, r, c;
for(int i = 0; i < n; i++)
{
cin >> l >> r >>c;
v.push_back(make_pair(make_pair(l, r), c));
}
sort(v.begin(), v.end(), compare);
int ans = INT_MAX;
for(int i = 0; i < v.size(); i++)
{
int low = i + 1, high = v.size() - 1, mid, flag = 0, temp = INT_MAX;
if(max(low, high) >= v.size())
break;
while(low <= high)
{
mid = low + (high - low) / 2;
if(v[mid].X.X > v[i].X.Y)
{
int t1, t2;
t1 = v[i].X.Y - v[i].X.X + 1;
t2 = v[mid].X.Y - v[mid].X.X + 1;
if(t1 + t2 == x)
{
flag = 1;
temp = min(temp, v[i].Y + v[mid].Y);
high = mid - 1;
}
else if(t1 + t2 < x)
low = mid + 1;
else high = mid - 1;
}
else low = mid + 1;
}
if(flag)
{
ans = min(ans, temp);
}
}
if(ans == INT_MAX)
cout << "-1\n";
else cout << ans <<"\n";
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBYIGZpcnN0CiNkZWZpbmUgWSBzZWNvbmQKCmJvb2wgY29tcGFyZShjb25zdCBwYWlyPHBhaXI8aW50LGludD4sIGludD4gJmEsY29uc3QgcGFpcjxwYWlyPGludCxpbnQ+LCBpbnQ+ICZiKQp7CiAgICBpZihhLlguWCAhPSBiLlguWCkKICAgIHJldHVybiBhLlguWCA8IGIuWC5YOwogICAgZWxzZSBpZihhLlguWSAhPSBiLlguWSkKICAgIHJldHVybiBhLlguWSA8IGIuWC5ZOwogICAgZWxzZSBpZihhLlkgIT0gYi5ZKQogICAgcmV0dXJuIGEuWSA8IGIuWTsgCn0KCmludCBtYWluKCkKewogICAgaW50IG4sIHg7CgogICAgY2luID4+IG4gPj4geDsKCiAgICB2ZWN0b3I8cGFpcjxwYWlyPGludCwgaW50PiwgaW50PiA+IHY7CgogICAgaW50IGwsIHIsIGM7CgogICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKykKICAgIHsKICAgICAgICBjaW4gPj4gbCA+PiByID4+YzsKCiAgICAgICAgdi5wdXNoX2JhY2sobWFrZV9wYWlyKG1ha2VfcGFpcihsLCByKSwgYykpOwogICAgfSAKCiAgICBzb3J0KHYuYmVnaW4oKSwgdi5lbmQoKSwgY29tcGFyZSk7CgogICAgaW50IGFucyA9IElOVF9NQVg7CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgdi5zaXplKCk7IGkrKykKICAgIHsKICAgICAgICBpbnQgbG93ID0gaSArIDEsIGhpZ2ggPSB2LnNpemUoKSAtIDEsIG1pZCwgZmxhZyA9IDAsIHRlbXAgPSBJTlRfTUFYOwoKICAgICAgICBpZihtYXgobG93LCBoaWdoKSA+PSB2LnNpemUoKSkKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIHdoaWxlKGxvdyA8PSBoaWdoKQogICAgICAgIHsKICAgICAgICAgICAgbWlkID0gbG93ICsgKGhpZ2ggLSBsb3cpIC8gMjsKICAgICAgICAgICAgaWYodlttaWRdLlguWCA+IHZbaV0uWC5ZKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpbnQgdDEsIHQyOwogICAgICAgICAgICAgICAgdDEgPSB2W2ldLlguWSAtIHZbaV0uWC5YICsgMTsKICAgICAgICAgICAgICAgIHQyID0gdlttaWRdLlguWSAtIHZbbWlkXS5YLlggKyAxOwogICAgICAgICAgICAgICAgaWYodDEgKyB0MiA9PSB4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGZsYWcgPSAxOwogICAgICAgICAgICAgICAgICAgIHRlbXAgPSBtaW4odGVtcCwgdltpXS5ZICsgdlttaWRdLlkpOwogICAgICAgICAgICAgICAgICAgIGhpZ2ggPSBtaWQgLSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSBpZih0MSArIHQyIDwgeCkKICAgICAgICAgICAgICAgICAgICBsb3cgPSBtaWQgKyAxOwogICAgICAgICAgICAgICAgZWxzZSBoaWdoID0gbWlkIC0gMTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGxvdyA9IG1pZCArIDE7CiAgICAgICAgfQogICAgICAgIGlmKGZsYWcpCiAgICAgICAgewogICAgICAgICAgICBhbnMgPSBtaW4oYW5zLCB0ZW1wKTsgCiAgICAgICAgfQogICAgfQoKICAgIGlmKGFucyA9PSBJTlRfTUFYKQogICAgICAgIGNvdXQgPDwgIi0xXG4iOwogICAgZWxzZSBjb3V0IDw8IGFucyA8PCJcbiI7CgogICAgcmV0dXJuIDA7Cn0=