#include using namespace std; int main(void) { int n, k; scanf("%d%d", &n, &k); vector x(n+1, k); int ans = k; vector tot_above(n+1, 0); for (int i = 1; i <= n; ++i) { int d, m, c; scanf("%d%d%d", &d, &m, &c); tot_above[i] = c + tot_above[d]; x[i] = max(m-c + max(0, x[d]-m), k-tot_above[i]); ans = min(ans, x[i]); } printf("%d\n", ans); }