RT
#include<bits/stdc++.h>
using namespace std;
const long long inf=2147483647;
int n,m,s;
struct edge{
int to;int dis;int next;
}a[150][250];
int sum=0,ans=inf;
bool b=0;
void bfs(int t,int y){
if(t==y){
ans=min(ans,sum);
b=1;
return ;
}
for(int i=1;i<=n;i++){
if(a[t][i].to!=0){
sum+=a[t][i].next;
bfs(i,y);
sum-=a[t][i].next;
}
}
return ;
}
int main(){
//freopen("114514.txt","r",stdin);
cin>>n>>m>>s;
for(int i=1;i<=m;i++){
int d,b,c;
cin>>d>>b>>c;
if(a[d][b].to==d && a[d][b].dis==b && c<a[d][b].next){
a[d][b].next=c;
}
else{
a[d][b].to=d;
a[d][b].dis=b;
a[d][b].next=c;
}
}
for(int i=1;i<=n;i++){
bfs(s,i);
if(b){
cout<<ans<<" ";
ans=inf;
b=1;
}
else{
cout<<inf<<" ";
}
}
return 0;
}