QAQ
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
struct node
{
ll v,w;
};
ll n,m,vis[101],ans=1e9,dis[101];
vector<node>g[101];
queue<ll>q;
void dfs(ll x,ll maxn,ll s)
{
if(s+maxn>ans)return;
if(x==n)
{
ans=min(ans,s+maxn);
return;
}
for(ll i=0;i<g[x].size();i++)
{
ll v=g[x][i].v;
if(!vis[v])
{
vis[v]=1;
dfs(v,max(maxn,g[x][i].w),s+g[x][i].w);
vis[v]=0;
}
}
}
int main()
{
cin>>n>>m;
for(ll i=1;i<=m;i++)
{
ll u,v,w;
cin>>u>>v>>w;
g[u].push_back({v,w});
g[v].push_back({u,w});
}
dfs(1,0,0);
cout<<ans;
}