import heapq N,M = list(map(int,input().split())) edge = [[] for _ in range(N)] for _ in range(M): a,b,c = list(map(int,input().split())) a -= 1;b -= 1 edge[a].append((c,b)) edge[b].append((c,a)) q = [(0,0,0), (0,1,0)] INF = 10**18 visited = [[INF,INF] for _ in range(N)] while(q): v, have, now = heapq.heappop(q) if(visited[now][have] <= v):continue visited[now][have] = v for w,i in edge[now]: if(visited[i][have] > v+w): heapq.heappush(q,(v+w, have, i)) if(have and visited[i][0] > v): heapq.heappush(q,(v, 0, i)) for i in range(N): print(visited[i][0] + visited[i][1])