#include<bits/stdc++.h>
using namespace std;
long long v[205][205],ans,dis[205],n,m,s,t,cnt;
long long bfs(){
memset(dis,0,sizeof(dis));
queue<long long> q;
q.push(s);
dis[s]=1;
while(!q.empty()){
long long f=q.front();
q.pop();
for(int i = 1 ; i <= n ; i++){
if(v[f][i]){
if(!dis[i]){
q.push(i);
dis[i]=dis[f]+1;
}
}
}
}
return dis[t];
}
long long dfs(long long now,long long sums){
if(now==t){
return sums;
}
long long ret=0;
for(int i = 1 ; i <= n ; i++){
if(dis[i]==dis[now]+1&&v[now][i]){
long long tmp=dfs(i,min(v[now][i],sums-ret));
v[now][i]-=tmp;
v[i][now]+=tmp;
ret+=tmp;
}
}
return ret;
}
void dfn(int x,int f){
bool fg=0;
for(int i = 1 ; i <= n ; i++){
if(f!=v[x][i]){
fg=1;
dfn(v[x][i],x);
v[i][x]=0;
}
}
if(!fg){
v[x][t]=LONG_LONG_MAX;
v[t][x]=0;
}
}
int main(){
cin>>n>>s;
t=n+1;
n-=1;
while(n--){
long long x,y,z;
cin>>x>>y>>z;
v[x][y]+=z;
v[y][x]+=z;
}
dfn(s,-1);
while(bfs()){
ans+=dfs(s,LONG_LONG_MAX);
}
cout<<ans;
return 0;
}