#include<bits/stdc++.h>
#define int long long
#define _ (int)(2e3 + 4)
using namespace std;
int n,k,id;
int head[_],siz[_],f[_][_];
struct ed {
int to,w,ne;
} a[_ << 1];
void add(int u,int v,int w) {
a[++id] = {v,w,head[u]};
head[u] = id;
}
void dp(int u,int pre) {
siz[u] = 1;
for(int i = head[u]; i; i = a[i].ne) {
int v = a[i].to;
if(v == pre) continue;
dp(v,u);
siz[u] += siz[v];
}
for(int i = head[u]; i; i = a[i].ne) {
int v = a[i].to, c = a[i].w;
if(v == pre) continue;
for(int j = min(siz[u],k); j >= 0; j --) {
for(int p = 0; p <= min(j,siz[v]); p ++) {
int tp = p*(k - p)*c + (siz[v] - p)*(n + p - k - siz[v])*c;
f[u][j] = max(f[u][j],f[v][p] + f[u][j - p] + tp);
}
}
}
}
signed main() {
scanf("%lld %lld",&n,&k);
for(int i = 2; i <= n; i ++) {
int a,b,c;
scanf("%lld %lld %lld",&a,&b,&c);
add(a,b,c), add(b,a,c);
}
dp(1,1);
printf("%lld",f[1][k]);
return 0;
}