from heapq import heappop, heappush INF = 1 << 60 def f(s, g): dist = [INF] * N dist[s] = 0 hq = [(0, s)] while hq: d, u = heappop(hq) if dist[u] < d: continue for v, c in g[u]: if dist[v] > d + c: dist[v] = d + c heappush(hq, (d + c, v)) return dist N, M = map(int, input().split()) g = [[] for _ in range(N)] rg = [[] for _ in range(N)] for _ in range(M): u, v, t = map(int, input().split()) u, v = u - 1, v - 1 g[u].append((v, t)) rg[v].append((u, t)) d1 = f(N - 2, g) d2 = f(N - 2, rg) d3 = f(N - 1, g) d4 = f(N - 1, rg) for i in range(N - 2): res = min(d2[i] + d1[N - 1] + d3[i], d4[i] + d3[N - 2] + d1[i]) print(res if res < INF else -1)