#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,m,h[105],e[205],w[205],ne[205],idx,f[105][105];
void add(int a,int b,int c){e[idx]=b,w[idx]=c,ne[idx]=h[a],h[a]=idx++;}
void dfs(int u,int fa){
for(int i=h[u];~i;i=ne[i]){
if(e[i]==fa)continue;
dfs(e[i],u);
for(int j=m;j;j--)
for(int k=0;k+1<=j;k++)f[u][j]=max(f[u][j],f[u][j-k-1]+f[e[i]][k]+w[i]);
}
}
int main()
{
int i,a,b,c;
scanf("%d%d",&n,&m);
memset(h, -1, sizeof h);
for(i=0;i<n-1;i++){
scanf("%d%d%d",&a,&b,&c);
add(a,b,c),add(b,a,c);
}
dfs(1,-1);
printf("%d\n",f[1][m]);
return 0;
}