#include using namespace std; int main() { int n; cin >> n; vector parent(n+1), cap(n+1), start(n+1), DP(n+1); cin >> cap[0]; for(int c1 = 0; c1 < n; c1++){ cin >> parent[c1+1] >> cap[c1+1] >> start[c1+1]; } DP[0] = cap[0]; int ans = DP[0]; for(int c1 = 1; c1 <= n; c1++){ DP[c1] = cap[c1]-start[c1] + max(DP[parent[c1]]-cap[c1],0); ans = min(ans, DP[c1]); } cout << ans << "\n"; return 0; }