#include <bits/stdc++.h>
#define int long long
using namespace std;
int n,m,d[300005];
vector <int> q[3000006];
vector <pair<int,int>> ve[300005];
void DIAL(int be)
{
for (int i=1;i<=n;i++) d[i]=1e9;
d[be]=0,q[0].push_back(be);
for (int dis=0;dis<=10*(n-1);dis++)
{
while (q[dis].size())
{
int u=q[dis].back();
q[dis].pop_back();
if (d[u]<dis) continue;
for (pair <int,int> p : ve[u])
{
int v=p.first,w=p.second;
if (d[v]>d[u]+w) d[v]=d[u]+w,q[d[v]].push_back(v);
}
}
}
cout<<d[n];
}
signed main()
{
ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0);
cin>>n>>m;
for (int i=1;i<=m;i++)
{
int u,v,w;
cin>>u>>v>>w;
ve[u].push_back({v,w}),ve[v].push_back({u,w});
}
DIAL(1);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgaW50IGxvbmcgbG9uZwp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgbixtLGRbMzAwMDA1XTsKdmVjdG9yIDxpbnQ+IHFbMzAwMDAwNl07CnZlY3RvciA8cGFpcjxpbnQsaW50Pj4gdmVbMzAwMDA1XTsKdm9pZCBESUFMKGludCBiZSkKewogICAgZm9yIChpbnQgaT0xO2k8PW47aSsrKSBkW2ldPTFlOTsKICAgIGRbYmVdPTAscVswXS5wdXNoX2JhY2soYmUpOwogICAgZm9yIChpbnQgZGlzPTA7ZGlzPD0xMCoobi0xKTtkaXMrKykKICAgIHsKICAgICAgICB3aGlsZSAocVtkaXNdLnNpemUoKSkKICAgICAgICB7CiAgICAgICAgICAgIGludCB1PXFbZGlzXS5iYWNrKCk7CiAgICAgICAgICAgIHFbZGlzXS5wb3BfYmFjaygpOwogICAgICAgICAgICBpZiAoZFt1XTxkaXMpIGNvbnRpbnVlOwogICAgICAgICAgICBmb3IgKHBhaXIgPGludCxpbnQ+IHAgOiB2ZVt1XSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaW50IHY9cC5maXJzdCx3PXAuc2Vjb25kOwogICAgICAgICAgICAgICAgaWYgKGRbdl0+ZFt1XSt3KSBkW3ZdPWRbdV0rdyxxW2Rbdl1dLnB1c2hfYmFjayh2KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIGNvdXQ8PGRbbl07Cn0Kc2lnbmVkIG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKSxjaW4udGllKDApLGNvdXQudGllKDApOwogICAgY2luPj5uPj5tOwogICAgZm9yIChpbnQgaT0xO2k8PW07aSsrKQogICAgewogICAgICAgIGludCB1LHYsdzsKICAgICAgICBjaW4+PnU+PnY+Pnc7CiAgICAgICAgdmVbdV0ucHVzaF9iYWNrKHt2LHd9KSx2ZVt2XS5wdXNoX2JhY2soe3Usd30pOwogICAgfQogICAgRElBTCgxKTsKICAgIHJldHVybiAwOwp9