#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;
string s;
ll n,m,k,st[4*maxn],lazy[4*maxn],a[maxn],q,ans[maxn],dp[maxn];
map<ll,ll> last;
void down(ll id,ll l,ll r,ll mid)
{
if (lazy[id] != 0)
{
lazy[id*2] = lazy[id];
st[id*2] = (mid-l+1) * lazy[id];
lazy[id*2+1] = lazy[id];
st[id*2+1] = (r-mid) * lazy[id];
lazy[id] = 0;
}
}
void update(ll u, ll v, ll val, ll id=1, ll l=1, ll r=n)
{
// [l,r] pos [l,r]
if (l > v || r < u) return;
if (u <= l && r <= v)
{
st[id] = (r-l+1) * val;
lazy[id] = val;
return;
}
ll mid = (l+r) >> 1;
down(id,l,r,mid);
update(u,v,val,id*2,l,mid);
update(u,v,val,id*2+1,mid+1,r);
st[id] = st[id*2] + st[id*2+1];
}
ll get(ll u, ll v,ll id=1,ll l=1, ll r=n)
{
if (u > r || v < l) return 0;
if (u <= l && r <= v) return st[id];
ll mid = (l+r) >> 1;
down(id,l,r,mid);
return get(u,v,id*2,l,mid) + get(u,v,id*2+1,mid+1,r);
}
struct query
{
ll l,r,c;
}Q[maxn];
bool cmp(query x, query y)
{
return x.r < y.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;
for (int i=1;i<=n;i++) dp[i] = 1e18;
dp[0] = 0;
sort(Q+1,Q+q+1,cmp);
for (auto p:Q)
{
ll l = p.l;
ll c = p.c;
ll r = p.r;
for (int i=l;i<=r;i++)
{
for (int j=l-1;j<=r-1;j++)
{
dp[i] = min(dp[i],dp[j] + c);
}
}
}
if (dp[n] != 1e18) cout << dp[n];
else cout << -1;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgaWkgcGFpcjxsbCxsbD4KI2RlZmluZSBpaWkgcGFpcjxsbCxwYWlyPGxsLGxsPj4KI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBmaWxlKGEpIGZyZW9wZW4oYSIuaW5wIiwiciIsc3RkaW4pO2ZyZW9wZW4oYSIub3V0IiwidyIsc3Rkb3V0KTsKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgaW50IG1heG4gPSAxZTYrNTsKc3RyaW5nIHM7CmxsIG4sbSxrLHN0WzQqbWF4bl0sbGF6eVs0Km1heG5dLGFbbWF4bl0scSxhbnNbbWF4bl0sZHBbbWF4bl07Cm1hcDxsbCxsbD4gbGFzdDsKdm9pZCBkb3duKGxsIGlkLGxsIGwsbGwgcixsbCBtaWQpCnsKICAgIGlmIChsYXp5W2lkXSAhPSAwKQogICAgewogICAgICAgIGxhenlbaWQqMl0gPSBsYXp5W2lkXTsKICAgICAgICBzdFtpZCoyXSA9IChtaWQtbCsxKSAqIGxhenlbaWRdOwoKICAgICAgICBsYXp5W2lkKjIrMV0gPSBsYXp5W2lkXTsKICAgICAgICBzdFtpZCoyKzFdID0gKHItbWlkKSAqIGxhenlbaWRdOwoKICAgICAgICBsYXp5W2lkXSA9IDA7CiAgICB9Cn0Kdm9pZCB1cGRhdGUobGwgdSwgbGwgdiwgbGwgdmFsLCBsbCBpZD0xLCBsbCBsPTEsIGxsIHI9bikKewogICAgLy8gW2wscl0gcG9zIFtsLHJdCiAgICBpZiAobCA+IHYgfHwgciA8IHUpIHJldHVybjsKICAgIGlmICh1IDw9IGwgJiYgciA8PSB2KQogICAgewogICAgICAgIHN0W2lkXSA9IChyLWwrMSkgKiB2YWw7CiAgICAgICAgbGF6eVtpZF0gPSB2YWw7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIGxsIG1pZCA9IChsK3IpID4+IDE7CiAgICBkb3duKGlkLGwscixtaWQpOwogICAgdXBkYXRlKHUsdix2YWwsaWQqMixsLG1pZCk7CiAgICB1cGRhdGUodSx2LHZhbCxpZCoyKzEsbWlkKzEscik7CiAgICBzdFtpZF0gPSBzdFtpZCoyXSArIHN0W2lkKjIrMV07Cn0KbGwgZ2V0KGxsIHUsIGxsIHYsbGwgaWQ9MSxsbCBsPTEsIGxsIHI9bikKewogICAgaWYgKHUgPiByIHx8IHYgPCBsKSByZXR1cm4gMDsKICAgIGlmICh1IDw9IGwgJiYgciA8PSB2KSByZXR1cm4gc3RbaWRdOwogICAgbGwgbWlkID0gKGwrcikgPj4gMTsKICAgIGRvd24oaWQsbCxyLG1pZCk7CiAgICByZXR1cm4gZ2V0KHUsdixpZCoyLGwsbWlkKSArIGdldCh1LHYsaWQqMisxLG1pZCsxLHIpOwp9CgoKc3RydWN0IHF1ZXJ5CnsKICAgIGxsIGwscixjOwp9UVttYXhuXTsKYm9vbCBjbXAocXVlcnkgeCwgcXVlcnkgeSkKewogICAgcmV0dXJuIHguciA8IHkucjsKfQptYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKE5VTEwpOwogICAgY2luID4+IG4gPj4gcTsKICAgIGZvciAoaW50IGk9MTtpPD1xO2krKykgY2luID4+IFFbaV0ubCA+PiBRW2ldLnIgPj4gUVtpXS5jOwogICAgZm9yIChpbnQgaT0xO2k8PW47aSsrKSBkcFtpXSA9IDFlMTg7CiAgICBkcFswXSA9IDA7CiAgICBzb3J0KFErMSxRK3ErMSxjbXApOwogICAgZm9yIChhdXRvIHA6USkKICAgIHsKICAgICAgICBsbCBsID0gcC5sOwogICAgICAgIGxsIGMgPSBwLmM7CiAgICAgICAgbGwgciA9IHAucjsKICAgICAgICBmb3IgKGludCBpPWw7aTw9cjtpKyspCiAgICAgICAgewogICAgICAgICAgICBmb3IgKGludCBqPWwtMTtqPD1yLTE7aisrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBkcFtpXSA9IG1pbihkcFtpXSxkcFtqXSArIGMpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfSAgIAogICAgaWYgKGRwW25dICE9IDFlMTgpICAgIGNvdXQgPDwgZHBbbl07CiAgICBlbHNlIGNvdXQgPDwgLTE7CiAgICByZXR1cm4gMDsKfQ==