import sys
def solve():
data = sys.stdin.read().split()
if not data:
return
it = iter(data)
n = int(next(it))
m = int(next(it))
adj = [[] for _ in range(n + 1)]
for _ in range(m):
u = int(next(it))
v = int(next(it))
w = int(next(it))
adj[u].append((v, w))
adj[v].append((u, w))
dist = [float('inf')] * (n + 1)
vis = [False] * (n + 1)
dist[1] = 0
for _ in range(n):
u = -1
for i in range(1, n + 1):
if not vis[i] and (u == -1 or dist[i] < dist[u]):
u = i
if u == -1 or dist[u] == float('inf'):
break
vis[u] = True
for v, w in adj[u]:
if dist[u] + w < dist[v]:
dist[v] = dist[u] + w
for i in range(2, n + 1):
print(dist[i] if dist[i] != float('inf') else -1)
if __name__ == "__main__":
solve()
aW1wb3J0IHN5cwoKZGVmIHNvbHZlKCk6CiAgICBkYXRhID0gc3lzLnN0ZGluLnJlYWQoKS5zcGxpdCgpCiAgICBpZiBub3QgZGF0YToKICAgICAgICByZXR1cm4KICAgIAogICAgaXQgPSBpdGVyKGRhdGEpCiAgICBuID0gaW50KG5leHQoaXQpKQogICAgbSA9IGludChuZXh0KGl0KSkKICAgIAogICAgYWRqID0gW1tdIGZvciBfIGluIHJhbmdlKG4gKyAxKV0KICAgIGZvciBfIGluIHJhbmdlKG0pOgogICAgICAgIHUgPSBpbnQobmV4dChpdCkpCiAgICAgICAgdiA9IGludChuZXh0KGl0KSkKICAgICAgICB3ID0gaW50KG5leHQoaXQpKQogICAgICAgIGFkalt1XS5hcHBlbmQoKHYsIHcpKQogICAgICAgIGFkalt2XS5hcHBlbmQoKHUsIHcpKQogICAgCiAgICBkaXN0ID0gW2Zsb2F0KCdpbmYnKV0gKiAobiArIDEpCiAgICB2aXMgPSBbRmFsc2VdICogKG4gKyAxKQogICAgZGlzdFsxXSA9IDAKICAgIAogICAgZm9yIF8gaW4gcmFuZ2Uobik6CiAgICAgICAgdSA9IC0xCiAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMSwgbiArIDEpOgogICAgICAgICAgICBpZiBub3QgdmlzW2ldIGFuZCAodSA9PSAtMSBvciBkaXN0W2ldIDwgZGlzdFt1XSk6CiAgICAgICAgICAgICAgICB1ID0gaQogICAgICAgIAogICAgICAgIGlmIHUgPT0gLTEgb3IgZGlzdFt1XSA9PSBmbG9hdCgnaW5mJyk6CiAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgIAogICAgICAgIHZpc1t1XSA9IFRydWUKICAgICAgICBmb3IgdiwgdyBpbiBhZGpbdV06CiAgICAgICAgICAgIGlmIGRpc3RbdV0gKyB3IDwgZGlzdFt2XToKICAgICAgICAgICAgICAgIGRpc3Rbdl0gPSBkaXN0W3VdICsgdwogICAgICAgICAgICAgICAgCiAgICBmb3IgaSBpbiByYW5nZSgyLCBuICsgMSk6CiAgICAgICAgcHJpbnQoZGlzdFtpXSBpZiBkaXN0W2ldICE9IGZsb2F0KCdpbmYnKSBlbHNlIC0xKQoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHNvbHZlKCk=