#include<bits/stdc++.h>
using namespace std;
using ll=long long;
const ll N=1e5+5,inf=9e18;
struct E{
    ll u,w;
};
ll n,m,s;
vector<vector<E>>adj(N);
vector<bool>vis(N,false);

ll dfs(ll x){
    ll ans=0;
    for(auto t:adj[x]){
        if(vis[t.u]==false){
            vis[t.u]=true;
            ans+=min(t.w,dfs(t.u));
        }
    }
    if(ans==0)return inf;
    else return ans;
}

int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    
    cin>>n>>m>>s;
    vis[s]=true;
    for(ll i=1;i<=m;i++){
        ll u,v,w;
        cin>>u>>v>>w;
        adj[u].push_back({v,w});
        adj[v].push_back({u,w});
    }
    cout<<dfs(s);

    return 0;
}