#include <bits/stdc++.h>
using namespace std;
int n,q,tot,root;
int ls[110],rs[110],lw[110],rw[110],fa[110];
int dp[110][110];
void insert(int u,int v,int w){
if(ls[u] == 0){
ls[u] = v;
lw[u] = w;
}
else{
rs[u] = v;
rw[u] = w;
}
return;
}
void dfs(int u){
if(u == 0) return;
dfs(ls[u]),dfs(rs[u]);
for(int k=1;k<=q;k++) dp[u][k] = max(dp[ls[u]][k-1] + lw[u],dp[u][k]);
for(int k=1;k<=q;k++) dp[u][k] = max(dp[rs[u]][k-1] + rw[u],dp[u][k]);
for(int k=2;k<=q;k++){
for(int l=1;l<k;l++){
dp[u][k] = max(dp[ls[u]][l-1] + lw[u] + dp[rs[u]][k-l-1] + rw[u],dp[u][k]);
}
}
return;
}
int main(){
cin>>n>>q;
int u,v,w;
for(int i=1;i<n;i++){
scanf("%d %d %d",&u,&v,&w);
insert(u,v,w);
fa[v] = u;
}
for(int i=1;i<=n;i++) if(fa[i] == 0) root = i;
dfs(root);
cout<<dp[root][q];
return 0;
}