#include <bits/stdc++.h>
#define double long double
#define AC return 0
#define pii pair<int,int>
#define fi first
#define se second
#define gc getchar
#define el cout<<"\n"
#define ls (p<<1)
#define rs (p<<1|1)
using namespace std;
const int N = 500010;
int n, rot, a, b, t, ans, dis[N];
vector<pii>edge[N];
void h(int x) {
for (auto i : edge[x]) {
h(i.fi);
dis[x] = max(dis[x], dis[i.fi] + i.se);
}
}
void dfs(int x) {
for (auto i : edge[x]) {
dfs(i.fi);
ans += (dis[x] - i.se - dis[i.fi]);
}
}
signed main() {
cin >> n >> rot;
for (int i = 1; i < n; i++) {
cin >> a >> b >> t;
edge[a].push_back({b, t});
}
h(rot);
dfs(rot);
cout << ans;
AC;
}