#include <bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define ll long long
#define For(i,a,b) for(int i=a;i <b;i++)
#define vi vector<int>
#define ii pair<int,int>
#define lii pair<long long,int>
#define vii vector<ii>
#define vlii vector<lii>
#define pb push_back
#define mp make_pair
#define fi first
#define se second
using namespace std;
const int maxn=50001;
const int maxm=500000;
struct re
{
int x,y,w;
};
int n,m;
ll d[maxn],res=1e12,dn[maxn];
bool ok;
vii a[maxn],ra[maxn];
bool vis[maxn];
re e[maxm];
void enter()
{
freopen("SHORTEST.INP","r",stdin);
cin >> n >> m;
rep(i,1,m)
{
int x,y,w; cin >> x >> y >> w;
e[i].x=x; e[i].y=y; e[i].w=w;
a[x].pb(mp(y,w));
ra[y].pb(mp(x,w));
}
}
void dijkstra()
{
priority_queue<lii,vlii,greater<lii> > heap;
heap.push(mp(0,1));
rep(i,1,n)
{
d[i]=1e12;
dn[i]=1e12;
}
d[1]=0; dn[n]=0;
while (!heap.empty())
{
int u=heap.top().se;
heap.pop();
if (vis[u]) continue;
vis[u]=1;
For(i,0,a[u].size())
{
int v=a[u][i].fi;
int w=a[u][i].se;
if (d[v]>d[u]+w)
{
d[v]=d[u]+w;
heap.push(mp(d[v],v));
}
}
}
rep(i,1,n) vis[i]=0;
while (!heap.empty()) heap.pop();
heap.push(mp(0,n));
while (!heap.empty())
{
int u=heap.top().se;
heap.pop();
if (vis[u]) continue;
vis[u]=1;
For(i,0,ra[u].size())
{
int v=ra[u][i].fi;
int w=ra[u][i].se;
if (dn[v]>dn[u]+w)
{
dn[v]=dn[u]+w;
heap.push(mp(dn[v],v));
}
}
}
}
void process()
{
dijkstra();
rep(i,1,m)
{
int x,y,w;
x=e[i].x; y=e[i].y; w=e[i].w;
if (d[x]+dn[y]+w>d[n]) res=min(res,d[x]+dn[y]+w);
}
}
void out()
{
freopen("SHORTEST.OUT","w",stdout);
if (res==1e12) res=-1;
cout << res;
}
int main()
{
ios_base::sync_with_stdio(0);
enter();
process();
out();
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgcmVwKGksYSxiKSBmb3IoaW50IGk9YTtpPD1iO2krKykKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBGb3IoaSxhLGIpIGZvcihpbnQgaT1hO2kgPGI7aSsrKQojZGVmaW5lIHZpIHZlY3RvcjxpbnQ+CiNkZWZpbmUgaWkgcGFpcjxpbnQsaW50PgojZGVmaW5lIGxpaSBwYWlyPGxvbmcgbG9uZyxpbnQ+CiNkZWZpbmUgdmlpIHZlY3RvcjxpaT4KI2RlZmluZSB2bGlpIHZlY3RvcjxsaWk+CiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGludCBtYXhuPTUwMDAxOwpjb25zdCBpbnQgbWF4bT01MDAwMDA7CgpzdHJ1Y3QgcmUKewogICAgaW50IHgseSx3Owp9OwppbnQgbixtOwpsbCBkW21heG5dLHJlcz0xZTEyLGRuW21heG5dOwpib29sIG9rOwp2aWkgYVttYXhuXSxyYVttYXhuXTsKYm9vbCB2aXNbbWF4bl07CnJlIGVbbWF4bV07Cgp2b2lkIGVudGVyKCkKewogICAgZnJlb3BlbigiU0hPUlRFU1QuSU5QIiwiciIsc3RkaW4pOwogICAgY2luID4+IG4gPj4gbTsKICAgIHJlcChpLDEsbSkKICAgIHsKICAgICAgICBpbnQgeCx5LHc7IGNpbiA+PiB4ID4+IHkgPj4gdzsKICAgICAgICBlW2ldLng9eDsgZVtpXS55PXk7IGVbaV0udz13OwogICAgICAgIGFbeF0ucGIobXAoeSx3KSk7CiAgICAgICAgcmFbeV0ucGIobXAoeCx3KSk7CiAgICB9Cn0KCnZvaWQgZGlqa3N0cmEoKQp7CiAgICBwcmlvcml0eV9xdWV1ZTxsaWksdmxpaSxncmVhdGVyPGxpaT4gPiBoZWFwOwogICAgaGVhcC5wdXNoKG1wKDAsMSkpOwogICAgcmVwKGksMSxuKQogICAgewogICAgICAgIGRbaV09MWUxMjsKICAgICAgICBkbltpXT0xZTEyOwogICAgfQogICAgZFsxXT0wOyBkbltuXT0wOwogICAgd2hpbGUgKCFoZWFwLmVtcHR5KCkpCiAgICB7CiAgICAgICAgaW50IHU9aGVhcC50b3AoKS5zZTsKICAgICAgICBoZWFwLnBvcCgpOwogICAgICAgIGlmICh2aXNbdV0pIGNvbnRpbnVlOwogICAgICAgIHZpc1t1XT0xOwogICAgICAgIEZvcihpLDAsYVt1XS5zaXplKCkpCiAgICAgICAgewogICAgICAgICAgICBpbnQgdj1hW3VdW2ldLmZpOwogICAgICAgICAgICBpbnQgdz1hW3VdW2ldLnNlOwogICAgICAgICAgICBpZiAoZFt2XT5kW3VdK3cpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGRbdl09ZFt1XSt3OwogICAgICAgICAgICAgICAgaGVhcC5wdXNoKG1wKGRbdl0sdikpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgcmVwKGksMSxuKSB2aXNbaV09MDsKICAgIHdoaWxlICghaGVhcC5lbXB0eSgpKSBoZWFwLnBvcCgpOwogICAgaGVhcC5wdXNoKG1wKDAsbikpOwogICAgd2hpbGUgKCFoZWFwLmVtcHR5KCkpCiAgICB7CiAgICAgICAgaW50IHU9aGVhcC50b3AoKS5zZTsKICAgICAgICBoZWFwLnBvcCgpOwogICAgICAgIGlmICh2aXNbdV0pIGNvbnRpbnVlOwogICAgICAgIHZpc1t1XT0xOwogICAgICAgIEZvcihpLDAscmFbdV0uc2l6ZSgpKQogICAgICAgIHsKICAgICAgICAgICAgaW50IHY9cmFbdV1baV0uZmk7CiAgICAgICAgICAgIGludCB3PXJhW3VdW2ldLnNlOwogICAgICAgICAgICBpZiAoZG5bdl0+ZG5bdV0rdykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZG5bdl09ZG5bdV0rdzsKICAgICAgICAgICAgICAgIGhlYXAucHVzaChtcChkblt2XSx2KSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0Kdm9pZCBwcm9jZXNzKCkKewogICAgZGlqa3N0cmEoKTsKICAgIHJlcChpLDEsbSkKICAgIHsKICAgICAgICBpbnQgeCx5LHc7CiAgICAgICAgeD1lW2ldLng7IHk9ZVtpXS55OyB3PWVbaV0udzsKICAgICAgICBpZiAoZFt4XStkblt5XSt3PmRbbl0pIHJlcz1taW4ocmVzLGRbeF0rZG5beV0rdyk7CiAgICB9Cn0KCnZvaWQgb3V0KCkKewogICAgZnJlb3BlbigiU0hPUlRFU1QuT1VUIiwidyIsc3Rkb3V0KTsKICAgIGlmIChyZXM9PTFlMTIpIHJlcz0tMTsKICAgIGNvdXQgPDwgcmVzOwp9CmludCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGVudGVyKCk7CiAgICBwcm9jZXNzKCk7CiAgICBvdXQoKTsKfQo=