#include<bits/stdc++.h>
using namespace std;
int n,m,s,dis[10004];
bool vis[10004];
struct st{int v,w;};
vector<st>e[10005];
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
cin>>n>>m>>s;
for(int i=1;i<=m;i++)
{
int u,v,w;
cin>>u>>v>>w;
st t={v,w};
e[u].push_back(t);
}
for(int i=1;i<=n;i++)
dis[i]=INT_MAX;
dis[s]=0;
for(int i=1;i<=n;i++)
{
int minn=INT_MAX,u;
for(int j=1;j<=n;j++)
if(dis[i]<minn&&vis[i]!=1)
minn=dis[i],u=i;
vis[u]=1;
int len=e[u].size();
for(int j=0;j<len;j++)
dis[e[i][j].v]=min(dis[e[i][j].v],dis[u]+e[i][j].w);
}
for(int i=1;i<=n;i++)
cout<<dis[i]<<' ';
return 0;
}