#include <bits/stdc++.h>
using namespace std;
 
int main() {
  long n,m;
  cin >> n >> m;
  vector<long> l(m),r(m),c(m),saitan(n,1000000000000000);
  vector<vector<long>> lr(n,vector<long>(0)),lc(n,vector<long>(0)),rc(n,vector<long>(0));
  multiset<long> ms;
  saitan[0]=0;
  for(long i=0;i<m;i++) {
    cin >> l[i] >> r[i] >> c[i];
    lr[l[i]-1].push_back(r[i]-1);
    lc[l[i]-1].push_back(c[i]);
  }
  for(long i=0;i<lr[0].size();i++) {
    ms.insert(lc[0][i]);
    rc[lr[0][i]].push_back(lc[0][i]);
  }
  for(long i=1;i<n;i++) {
    if(ms.size()!=0) saitan[i]=min(1000000000000000L,*(ms.begin()));
    for(long j=0;j<rc[i].size();j++) {
      ms.erase(ms.find(rc[i][j]));
    }
    for(long j=0;j<lr[i].size();j++) {
      ms.insert(lc[i][j]+saitan[i]);
      rc[lr[i][j]].push_back(lc[i][j]+saitan[i]);
    }
  }
  if(saitan[n-1]!=1000000000000000)cout << saitan[n-1] << endl;
  else cout << -1 << endl;
}