#include <stdio.h>
#include <stdlib.h>
int main() {
    int u, v, w;
    int i, j;
    int n, m, t;
    scanf("%d%d", &t, &m);
    n = 5000;
    int** arc = (int**)malloc((n+1) * sizeof(int*));
    for (i = 0; i < n+1; i++) {
        arc[i] = (int*)malloc((n+1)* sizeof(int));
    }
    int shortest[n + 1];
    int patharc[n + 1];
    int final[n + 1];
    for (i = 0; i < n + 1; i++) {
        for (j = 0; j < n + 1; j++) {
            arc[i][j] = 10000000;
        }
    }
    for (i = 0; i < m; i++) {
        scanf("%d%d%d", &u, &v, &w);
        arc[u][v] = arc[v][u] = w;
    }
    for (i = 0; i < n + 1; i++) {
        shortest[i] = arc[1][i];
        patharc[i] = 0;
        final[i] = 0;
    }
    final[1] = 1;
    int k;
    for (int l = 1; l < n; l++) {
        int min = 10000000;
        for (i = 1; i <= n; i++) {
            if (final[i] != 1 && shortest[i] < min) {
                min = shortest[i];
                k = i;
            }
        }
        final[k] = 1;
        if (k == t) {
            printf("%d", shortest[k]);
            return 0;
        }
        for (j = 1; j <= n; j++) {
            if (final[j] != 1 && shortest[j] > min + arc[k][j]) {
                shortest[j] = min + arc[k][j];
                patharc[j] = k;
            }

        }

    }
    printf("%d", -1);
    for(i=0;i<n+1;i++)
    {
     free(arc[i]);
    }
    free(arc);
    return 0;
}