n,m=map(int, input('node number and edge number:').split())
INF=0x3f3f3f
#print(INF)
e=[]
for i in range(n):
e.append([])
for j in range(n):
e[i].append(INF)
if i==j:
e[i][j]=0
for i in range(m):
a,b,w=map(int,input('node a and node b,edge of a&b:').split())
e[a][b]=w
e[b][a]=w
dis=[]
book=[]
k=0
for i in range(n):
dis.append(e[0][i])
book.append(0)
dis[0]=0
book[0]=1
for i in range(n):
mmin=INF
for j in range(1,n):
if book[j]==0 and dis[j]<mmin:
mmin=dis[j]
k=j
book[k]=1
#print("k is ",k)
for j in range(1,n):
#print('j is ',j,dis[j],dis[k],e[k][j])
if book[j]==0 and dis[j]>(dis[k]+e[k][j]):
dis[j]=dis[k]+e[k][j]
for i in range(n):
print(dis[i])