#include<bits/stdc++.h>
using namespace std;
#define N 10010
const long int inf=pow(2,31)-1;
long int g[N][N];
long int dis[N];
long int flag[N];
int main(){
long int n,m,s;
long int x,y,w;
cin>>n>>m>>s;
for(int i=1;i<=n;i++) dis[i]=inf;
for(int i=1;i<=m;i++){
cin>>x>>y>>w;
g[x][y]=w;
}
dis[s] =0;
for(int i=1;i<=n;i++){
long int minn=inf,t;
for(int j=1;j<=n;j++){
if(dis[j]<minn&&flag[j]==0){
minn=dis[j];t=j;
}
}
flag[t]=1;
for(int j=1;j<=n;j++){
if(g[t][j]>0){
dis[j]=min(minn+g[t][j],dis[j]);
}
}
}
for(int i=1;i<=n;i++) cout<<dis[i]<<" ";
return 0;
}