#include<bits/stdc++.h>
using namespace std;
int a,b,x,y,z,o[2010][2010],p[2010];
vector<int> n[2010],m[2010];
void f(int x,int y){
p[x]=1;
if(n[x].size()==1 and n[x][0]==y){
return;
}
for(int i=0;i<n[x].size();i++){
if(n[x][i]==y){
continue;
}
f(n[x][i],x);
p[x]+=p[n[x][i]];
}
for(int i=0;i<n[x].size();i++){
if(n[x][i]==y){
continue;
}
for(int j=b;j>=0;j--){
for(int k=1;k<=j and k<=p[n[x][i]];k++){
o[x][j]=max(o[x][j],o[x][j-k]+o[n[x][i]][k]+(k*(b-k)+(p[n[x][i]]-k)*(a-b-p[n[x][i]]+k))*m[x][i]);
}
}
}
}
int main(){
cin>>a>>b;
for(int i=1;i<a;i++){
cin>>x>>y>>z;
n[x].push_back(y);
n[y].push_back(x);
m[x].push_back(z);
m[y].push_back(z);
}
f(1,0);
cout<<o[1][b];
return 0;
}
~~**