#include <bits/stdc++.h>
#define ii pair<ll,ll>
#define iii pair<ll,pair<ll,ll>>
#define ll long long
#define file(a) freopen(a".inp","r",stdin);freopen(a".out","w",stdout);
using namespace std;
const int maxn = 1e6+5;
const int dx[] = {-1,0,0,1};
const int dy[] = {0,-1,1,0};
ll n,m,st[maxn*4],q,lazy[maxn*4];
struct Query { ll l, r, c; } Q[maxn];
bool cmp(Query a, Query b) { return a.r < b.r; }
void build(ll id = 1, ll l = 0, ll r = n) {
lazy[id] = 1e18;
if (l == r) {
st[id] = (l == 0 ? 0 : 1e18);
return;
}
ll mid = (l + r) >> 1;
build(id*2, l, mid);
build(id*2+1, mid+1, r);
st[id] = min(st[id*2], st[id*2+1]);
}
void push(ll id, ll l, ll r)
{
if (lazy[id] != 1e18) {
st[id] = min(st[id], lazy[id]);
if (l != r) {
lazy[id*2] = min(lazy[id*2], lazy[id]);
lazy[id*2+1] = min(lazy[id*2+1], lazy[id]);
}
lazy[id] = 1e18;
}
}
void update(ll u, ll v, ll val, ll id=1, ll l=0, ll r=n)
{
push(id,l,r);
// [u,v] [l,r] [u,v]
if (u > r || l > v) return;
if (u <= l && r <= v)
{
// st[id] = val;
lazy[id] = val;
push(id,l,r);
return;
}
// down(id);
ll mid = (l+r) >> 1;
update(u,v,val,id*2,l,mid);
update(u,v,val,id*2+1,mid+1,r);
st[id] = min(st[id*2],st[id*2+1]);
}
ll get(ll u, ll v,ll id=1,ll l=0, ll r=n)
{
push(id,l,r);
if (u > r || v < l) return 1e18;
if (u <= l && r <= v) return st[id];
ll mid = (l+r) >> 1;
// down(id);
return min(get(u,v,id*2,l,mid), get(u,v,id*2+1,mid+1,r));
}
main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin >> n >> q;
for (int i = 1; i <= q; ++i)
cin >> Q[i].l >> Q[i].r >> Q[i].c;
build();
sort(Q + 1, Q + q + 1, cmp);
for (auto p:Q)
{
ll l = p.l;
ll r = p.r;
ll c = p.c;
// for (int i=l;i<=r;i++)
// {
// ll cur = get(i,i);
// ll best = get(max(0LL,l-1),i-1);
// if (best != 1e18 && best + c < cur)
// {
// update(i,best + c);
// }
// }
ll best = get(max(0ll,l-1),r-1);
if (best != 1e18) update(l,r,best + c);
}
ll ans = get(n,n);
if (ans != 1e18) cout << ans;
else cout << -1;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgaWkgcGFpcjxsbCxsbD4KI2RlZmluZSBpaWkgcGFpcjxsbCxwYWlyPGxsLGxsPj4KI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBmaWxlKGEpIGZyZW9wZW4oYSIuaW5wIiwiciIsc3RkaW4pO2ZyZW9wZW4oYSIub3V0IiwidyIsc3Rkb3V0KTsKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgaW50IG1heG4gPSAxZTYrNTsKY29uc3QgaW50IGR4W10gPSB7LTEsMCwwLDF9Owpjb25zdCBpbnQgZHlbXSA9IHswLC0xLDEsMH07CmxsIG4sbSxzdFttYXhuKjRdLHEsbGF6eVttYXhuKjRdOwpzdHJ1Y3QgUXVlcnkgeyBsbCBsLCByLCBjOyB9IFFbbWF4bl07CmJvb2wgY21wKFF1ZXJ5IGEsIFF1ZXJ5IGIpIHsgcmV0dXJuIGEuciA8IGIucjsgfQoKCnZvaWQgYnVpbGQobGwgaWQgPSAxLCBsbCBsID0gMCwgbGwgciA9IG4pIHsKICAgIGxhenlbaWRdID0gMWUxODsKICAgIGlmIChsID09IHIpIHsKICAgICAgICBzdFtpZF0gPSAobCA9PSAwID8gMCA6IDFlMTgpOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGxsIG1pZCA9IChsICsgcikgPj4gMTsKICAgIGJ1aWxkKGlkKjIsIGwsIG1pZCk7CiAgICBidWlsZChpZCoyKzEsIG1pZCsxLCByKTsKICAgIHN0W2lkXSA9IG1pbihzdFtpZCoyXSwgc3RbaWQqMisxXSk7Cn0Kdm9pZCBwdXNoKGxsIGlkLCBsbCBsLCBsbCByKSAKewogICAgaWYgKGxhenlbaWRdICE9IDFlMTgpIHsKICAgICAgICBzdFtpZF0gPSBtaW4oc3RbaWRdLCBsYXp5W2lkXSk7CiAgICAgICAgaWYgKGwgIT0gcikgewogICAgICAgICAgICBsYXp5W2lkKjJdID0gbWluKGxhenlbaWQqMl0sIGxhenlbaWRdKTsKICAgICAgICAgICAgbGF6eVtpZCoyKzFdID0gbWluKGxhenlbaWQqMisxXSwgbGF6eVtpZF0pOwogICAgICAgIH0KICAgICAgICBsYXp5W2lkXSA9IDFlMTg7CiAgICB9Cn0Kdm9pZCB1cGRhdGUobGwgdSwgbGwgdiwgbGwgdmFsLCBsbCBpZD0xLCBsbCBsPTAsIGxsIHI9bikKewogICAgcHVzaChpZCxsLHIpOwogICAgLy8gW3Usdl0gW2wscl0gW3Usdl0KICAgIGlmICh1ID4gciB8fCBsID4gdikgcmV0dXJuOwogICAgaWYgKHUgPD0gbCAmJiByIDw9IHYpCiAgICB7CiAgICAgICAgLy8gc3RbaWRdID0gdmFsOwogICAgICAgIGxhenlbaWRdID0gdmFsOwogICAgICAgIHB1c2goaWQsbCxyKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICAvLyBkb3duKGlkKTsKICAgIGxsIG1pZCA9IChsK3IpID4+IDE7CiAgICB1cGRhdGUodSx2LHZhbCxpZCoyLGwsbWlkKTsKICAgIHVwZGF0ZSh1LHYsdmFsLGlkKjIrMSxtaWQrMSxyKTsKICAgIHN0W2lkXSA9IG1pbihzdFtpZCoyXSxzdFtpZCoyKzFdKTsKfQoKbGwgZ2V0KGxsIHUsIGxsIHYsbGwgaWQ9MSxsbCBsPTAsIGxsIHI9bikKewogICAgcHVzaChpZCxsLHIpOwogICAgaWYgKHUgPiByIHx8IHYgPCBsKSByZXR1cm4gMWUxODsKICAgIGlmICh1IDw9IGwgJiYgciA8PSB2KSByZXR1cm4gc3RbaWRdOwogICAgbGwgbWlkID0gKGwrcikgPj4gMTsKICAgIC8vIGRvd24oaWQpOwogICAgcmV0dXJuIG1pbihnZXQodSx2LGlkKjIsbCxtaWQpLCBnZXQodSx2LGlkKjIrMSxtaWQrMSxyKSk7Cn0KbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShOVUxMKTsKICAgIGNpbiA+PiBuID4+IHE7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBxOyArK2kpCiAgICAgICAgY2luID4+IFFbaV0ubCA+PiBRW2ldLnIgPj4gUVtpXS5jOwoKICAgIGJ1aWxkKCk7CiAgICBzb3J0KFEgKyAxLCBRICsgcSArIDEsIGNtcCk7CiAgICBmb3IgKGF1dG8gcDpRKQogICAgewogICAgICAgIGxsIGwgPSBwLmw7CiAgICAgICAgbGwgciA9IHAucjsKICAgICAgICBsbCBjID0gcC5jOwoKICAgICAgICAvLyBmb3IgKGludCBpPWw7aTw9cjtpKyspCiAgICAgICAgLy8gewogICAgICAgIC8vICAgICBsbCBjdXIgPSBnZXQoaSxpKTsKICAgICAgICAvLyAgICAgbGwgYmVzdCA9IGdldChtYXgoMExMLGwtMSksaS0xKTsKICAgICAgICAvLyAgICAgaWYgKGJlc3QgIT0gMWUxOCAmJiBiZXN0ICsgYyA8IGN1cikKICAgICAgICAvLyAgICAgewogICAgICAgIC8vICAgICAgICAgdXBkYXRlKGksYmVzdCArIGMpOwogICAgICAgIC8vICAgICB9CiAgICAgICAgLy8gfQogICAgICAgIGxsIGJlc3QgPSBnZXQobWF4KDBsbCxsLTEpLHItMSk7CiAgICAgICAgaWYgKGJlc3QgIT0gMWUxOCkgdXBkYXRlKGwscixiZXN0ICsgYyk7CiAgICB9CiAgICBsbCBhbnMgPSBnZXQobixuKTsKICAgIGlmIChhbnMgIT0gMWUxOCkgY291dCA8PCBhbnM7CiAgICBlbHNlIGNvdXQgPDwgLTE7CiAgICByZXR1cm4gMDsKfQ==