#include<bits/stdc++.h>
using namespace std;
typedef int ll;
int main()
{
ll a,b,c;
ll n,m,s;
ll d[10002][10002];
ll inf=2147483647;
ll f[10002];
bool w[10002]={false};
scanf("%d%d%d",&n,&m,&s);
for(ll i=1;i<=n;i++)
{
for(ll j=1;j<=n;j++)
{
if(i!=j)
d[i][j]=inf;
}
if(i!=s)
f[i]=inf;
}
for(ll i=0;i<m;i++)
{
scanf("%d%d%d",&a,&b,&c);
c=min(c,d[a][b]);
d[a][b]=c;
if(a==s)
f[b]=c;
}
ll cnt=1;
w[s]=true;
while(cnt!=n)
{
ll x,mmin=inf;
for(ll i=1;i<=n;i++)
{
if(f[i]<mmin&&w[i]==false)
{
mmin=f[i];
x=i;
}
}
if(mmin==inf)
{
for(ll i=1;i<=n;i++)
{
if(w[i]==false)
f[i]=inf;
}
break;
}
w[x]=true;
cnt++;
for(ll i=1;i<=n;i++)
{
if(w[i]==false&&f[i]>(long long)(f[x])+(long long)(d[x][i]))
f[i]=f[x]+d[x][i];
if(f[i]>=inf)
f[i]=inf;
}
}
printf("%d",f[1]);
for(ll i=2;i<=n;i++)
printf(" %d",f[i]);
}