#include using namespace std; typedef long long ll; int main(void) { ll n, k; scanf("%lld%lld", &n, &k); vector par(n+1), cap(n+1), cur(n+1); ll ans = k; for (int i = 1; i <= n; ++i) { scanf("%lld%lld%lld", &par[i], &cap[i], &cur[i]); ll at = i, cost = 0, water = 0; while (at && cost < ans) { ll add = max(0LL, cap[at]-cur[at]-water); cost += add; water += add + cur[at]; at = par[at]; } cost += max(0LL, k-water); ans = min(ans, cost); } printf("%lld\n", ans); }