#include<cstdio>
const int N=50001;
int n,m,i,t,p,u,d[N],w[N],*s[N],*v[N],a[5*N],b[5*N],e[5*N],q[5*N];
int main()
{
freopen("dijkstra.in","r",stdin),freopen("dijkstra.out","w",stdout),scanf("%d%d",&n,&m);
for(i=1;i<=m;i++)
scanf("%d%d%d",a+i,b+i,e+i),w[a[i]]++;
for(i=1;i<=n;d[i]=N,w[i++]=0)
s[i]=new int[w[i]],v[i]=new int[w[i]];
for(i=1;i<=m;i++)
s[a[i]][w[a[i]]]=b[i],v[a[i]][w[a[i]]++]=e[i];
for(d[1]=0,q[u++]=1;p<u;)
for(t=q[p++],i=0;i<w[t];i++)
if(d[s[t][i]]>d[t]+v[t][i])
d[s[t][i]]=d[t]+v[t][i],q[u++]=s[t][i];
for(i=2;i<=n;i++)
printf("%d ",d[i]%N);
}