record
#include<bits/stdc++.h>
int son[105][2];
int val[105][2];int n,q;
int f[105][105];
void dfs(int u,int la){
bool flag=true;
for(int I=0;I<=1;I++)
{
if(son[u][I]==la)
continue;
flag=false;
dfs(son[u][I],u);
}
if(flag)
return;
for(int i=1;i<=q;i++)
{
for(int j=0;j<=i;j++)
{
int tmp=0;
if(j!=0)
tmp+=val[u][0];
if(i-j>=1)
tmp+=val[u][1];
if(tmp+f[son[u][0]][j]+f[son[u][1]][i-j]>f[u][j])
f[u][j]=tmp+f[son[u][0]][j]+f[son[u][1]][i-j];
}
}
}
int main()
{
scanf("%d%d",&n,&q);
for(int i=1;i<n;i++)
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
if(son[a][0])
{
son[a][1]=b;
val[a][1]=c;
}
else
{
son[a][0]=b;val[a][0]=c;
}
if(son[b][0])
{
son[b][1]=a;
val[b][0]=c;
}
else
{
son[b][0]=a;val[b][0]=c;
}
}
dfs(1,0);
printf("%d",f[1][q]);
return 0;
}