#include<iostream>#include<cstdio>usingnamespace std;constint inf =1e9+7;constint N =23570;int u[N],v[N],w[N];int dis[N],n,m,s,k;bool vis[N],check;intmain(){scanf("%d%d%d",&n,&m,&s);for(int i =1; i <= m; i ++)scanf("%d%d%d",&u[i],&v[i],&w[i]);for(int i =1; i <= n; i ++)
dis[i]= inf;
dis[s]=0;for(int k =1; k < n; k ++){
check =0;for(int i =1; i <= m; i ++){if(dis[v[i]]> dis[u[i]]+ w[i]){
dis[v[i]]= dis[u[i]]+ w[i];
check =1;}}if(check ==0)break;}for(int i =1; i <= n; i ++)printf("%d ",dis[i]);return0;}