N,K = map(int, input().split())
L = [0]*(N-1)
C = [0]*(N-1)
KI = []
d = {}
for i in range(N):
    KI.append([])

for i in range(N-1):
    a,b,c=map(int, input().split())
    KI[a-1].append(b-1)
    KI[b-1].append(a-1)
    d[(a-1,b-1)]=i
    d[(b-1,a-1)]=i
    C[i]=c

def dfs(p,pre,no):
    if len(KI[p])==1 and p!=0:
        for n in no:
            L[d[n]]+=1

    else:
        for ki in KI[p]:
            if pre==ki:
                continue    
            dfs(ki,p,no+[(p,ki)])

dfs(0,-1,[])
ans = 0
for i in range(N-1):
    ans+=L[i]*C[i]

DP = [-1]*(K+1)
DP[0] = 0
for i in range(N-1):
    for j in reversed(range(max(0,K+1-C[i]))):
        if DP[j]>=0 and DP[j+C[i]]<DP[j]+C[i]*L[i]:
            DP[j+C[i]] = DP[j]+C[i]*L[i]

print(ans+max(DP))