#!/usr/bin/env python3
dams = {}
[n, w] = [int(x) for x in input().split()]
best = 10000
for i in range(1, n+1):
    parent, capacity, fill = map(int, input().split())
    dams[i] = {'parent': parent, 'capacity': capacity, 'fill': fill}
    needed = 0
    wave = 0
    current = i
    while True:
        extra_water = max(0, dams[current]['capacity']-dams[current]['fill'] - wave)
        needed += extra_water
        wave += dams[current]['fill'] + extra_water
        current = dams[current]['parent']
        if current == 0:
            break
    needed += max(0, w - wave)
    best = min(best, needed)
best = min(best, w)
print(best)