#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1001;
int a[N][N],n,m,dis[N],vis[N];
signed main(){
cin>>n>>m;
memset(a,0x3f,sizeof(a));
for(int i=1;i<=n;i++) a[i][i]=0;
for(int i=1;i<=m;i++){
int p,q,w;
cin>>p>>q>>w;
a[p][q]=w;
a[q][p]=w;
}
//dijkstra
memset(dis,0x3f,sizeof(dis));
dis[1]=0;
for(int i=1;i<=n;i++){
int minn=0x3f3f3f3f,u=0;
for(int j=1;j<=n;j++){
if(!vis[j]&&dis[j]<minn){
minn=dis[j];
u=j;
}
}
vis[u]=1;
for(int j=1;j<=n;j++){
if(!vis[j]&&dis[j]>dis[u]+a[u][j]){
dis[j]=dis[u]+a[u][j];
}
}
}
for(int i=1;i<=n;i++){
if(dis[i]==0x3f) cout<<-1<<" ";
else cout<<dis[i]<<" ";
}
return 0;
}