//题意好懂,求1到n的最短路,直接跑spfa就行
#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
#include<queue>
using namespace std;
struct edge
{
int to,w;
};
vector<edge> e[1005];
bool vis[1005];
int n,m,dis[1005];
void spfa()
{
dis[1]=0;
queue<int>q;
q.push(1);
vis[1]=1;
while(!q.empty())
{
int s=q.front();
q.pop();
vis[s]=0;
for(int i=0;i<e[s].size();i++)
{
int v=e[s][i].to;
int w=e[s][i].w;
if(dis[v]>dis[s]+w)
{
dis[v]=dis[s]+w;
if(!vis[v])
{
vis[v]=1;
q.push(v);
}
}
}
}
}
int main()
{
scanf("%d%d",&m,&n);
memset(vis,0,sizeof(vis));
for(int i=1;i<=n;i++) dis[i]=1e9+7;
edge ee;
int a,b,ll;
for(int i=1;i<=m;i++)
{
scanf("%d%d%d",&a,&b,&ll);
ee.to=b,ee.w=ll;
e[a].push_back(ee);
ee.to=a;
e[b].push_back(ee);
}
spfa();
printf("%d\n",dis[n]);
return 0;
}