#include <stdio.h>
#include <string.h>
#define M 1005
#define MAX 100000
int edge[M][M];
void dij(int n)
{
mark[M],dis[M];
i,count,k;
-1;
memset(mark,0,sizeof(mark));
<= n;i ++)
dis[i] = edge[n][i];
1;
--)
int min = MAX;
for (i = 1;i <= n;i ++)
if (!mark[i]&&dis[i]
< min)
{
min = dis[i];
k = i;
}
mark[k] = 1;
for (i = 1;i <= n;i ++)
if (!mark[i]&&dis[i]
> dis[k] + edge[k][i])
dis[i] = dis[k] + edge[k][i];
("%d\n",dis[1]);
}
int main ()
{
t,n,v1,v2,w,i,j;
("%d%d",&t,&n);
<= n;i ++)
for (j = 1;j <= n;j ++)
edge[i][j] = MAX;
--)
scanf
("%d%d%d",&v1,&v2,&w);
w = edge[v1][v2] > w?w:edge[v1][v2];
edge[v1][v2] = w;
edge[v2][v1] = w;
(n);
0;
}