from collections import deque n,k=map(int,input().split()) v=[[] for i in range(n)];x=[] for i in range(n-1): a,b,c=map(int,input().split());a-=1;b-=1 x.append((a,b,c)) v[a].append(b);v[b].append(a) dep=[0]*n f=deque([(0,0,0)]) while f: q,w,e=f.pop() if len(v[q])>e: f.append((q,w,e+1)) if v[q][e]!=w: f.append((v[q][e],q,0)) else: if len(v[q])==1 and v[q][0]==w: dep[q]=1 continue for i in v[q]: if i!=w: dep[q]+=dep[i] dp=[0]*(k+1) for i,j,l in x: c=min(dep[i],dep[j]) for j in range(k,-1,-1): if j+l<=k: dp[j+l]=max(dp[j+l],dp[j]+l*2*c) dp[j]+=l*c print(dp[k])