#include <iostream>
#include <vector>
#include <queue>
#include <cstring>
using namespace std;
//英语 看博友分析 抄博友程序 bfs 树的直径 背
struct nod{
int x;
int zhi;
};
vector<nod> G[100008];
int vis[100008];
int mx;
int bfs(int x)
{
memset(vis,0,sizeof(vis));
int jg=0;
mx=0;
queue<nod> que;
que.push((nod){x,0});
vis[x]=1;
while(que.empty()!=1)
{
int t=que.front().x;
int tz=que.front().zhi;
que.pop();
for(int i=0;i<G[t].size();i++)
{
int y=G[t][i].x;
if(vis[y]==0)
{
int zhi=tz+G[t][i].zhi;
if(mx<zhi)
{
mx=zhi;
jg=y;
}
vis[y]=1;
que.push((nod){y,zhi});
}
}
}
return jg;
}
int main()
{
int n, s;
cin>>n>>s;
int sum=0;
for(int i=0;i<n-1;i++)
{
int a,b,c;
cin>>a>>b>>c;
sum=sum+c;
G[a].push_back((nod){b,c});
G[b].push_back((nod){a,c});
}
int t=bfs(s);
bfs(t);
cout<<sum*2-mx<<endl;
return 0;
}