#include<bits/stdc++.h>
#define FOR(i, j, k) for(int i = j; i <= k; i++)
#define ROF(i, j, k) for(int i = j; i >= k; i--)
#define INF 100000000
#define MEM(n, val) memset(n, val, sizeof(n))
#define PB push_back
using namespace std;
int n, q;
vector<int> adjl[110], cost[110];
int dp[110][110];
int func(int u, int m, int par) {
if(m == 0) {
return 0;
}
if(adjl[u].size() == 1) {
return -INF;
}
if(dp[u][m] != -1) {
return dp[u][m];
}
int le_node, le_cost;
int ri_node, ri_cost;
bool foo = 0;
FOR(i, 0, (int)adjl[u].size() - 1) {
int v = adjl[u][i];
int c = cost[u][i];
if(v == par) {
continue;
}
if(foo == 0) {
le_node = v;le_cost = c;
foo++;
}
else {
ri_node = v;ri_cost = c;
foo++;
}
}
int ans = -INF;
FOR(k, 1, m - 1) {
ans = max(ans, le_cost + ri_cost + func(le_node, (k) - 1, u) + func(ri_node, (m - k) - 1, u));
}
ans = max(ans, le_cost + func(le_node, m - 1, u));
ans = max(ans, ri_cost + func(ri_node, m - 1, u));
//cout << u << " " << m << " : " << ans << "\n";
return dp[u][m] = ans;
}
int main() {
//cin >> n >> s;
cin >> n >> q;
FOR(i, 1, n - 1) {
int u, v, w;
cin >> u >> v >> w;
adjl[u].PB(v);
adjl[v].PB(u);
cost[u].PB(w);
cost[v].PB(w);
}
MEM(dp, -1);
cout << func(1, q, 0) << "\n";
return 0;
}
/**
*/
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCiNkZWZpbmUgRk9SKGksIGosIGspIGZvcihpbnQgaSA9IGo7IGkgPD0gazsgaSsrKQojZGVmaW5lIFJPRihpLCBqLCBrKSBmb3IoaW50IGkgPSBqOyBpID49IGs7IGktLSkKI2RlZmluZSBJTkYgMTAwMDAwMDAwCiNkZWZpbmUgTUVNKG4sIHZhbCkgbWVtc2V0KG4sIHZhbCwgc2l6ZW9mKG4pKQoKI2RlZmluZSBQQiBwdXNoX2JhY2sKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgoKaW50IG4sIHE7CnZlY3RvcjxpbnQ+IGFkamxbMTEwXSwgY29zdFsxMTBdOwppbnQgZHBbMTEwXVsxMTBdOwoKCmludCBmdW5jKGludCB1LCBpbnQgbSwgaW50IHBhcikgIHsKICAgIGlmKG0gPT0gMCkgICAgewogICAgICAgIHJldHVybiAwOwogICAgfQogICAgaWYoYWRqbFt1XS5zaXplKCkgPT0gMSkgICAgewogICAgICAgIHJldHVybiAtSU5GOwogICAgfQogICAgaWYoZHBbdV1bbV0gIT0gLTEpICAgIHsKICAgICAgICByZXR1cm4gZHBbdV1bbV07CiAgICB9CiAgICBpbnQgbGVfbm9kZSwgbGVfY29zdDsKICAgIGludCByaV9ub2RlLCByaV9jb3N0OwoKICAgIGJvb2wgZm9vID0gMDsKICAgIEZPUihpLCAwLCAoaW50KWFkamxbdV0uc2l6ZSgpIC0gMSkgICB7CiAgICAgICAgaW50IHYgPSBhZGpsW3VdW2ldOwogICAgICAgIGludCBjID0gY29zdFt1XVtpXTsKICAgICAgICBpZih2ID09IHBhcikgICAgewogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYoZm9vID09IDApICAgIHsKICAgICAgICAgICAgbGVfbm9kZSA9IHY7bGVfY29zdCA9IGM7CiAgICAgICAgICAgIGZvbysrOwogICAgICAgIH0KICAgICAgICBlbHNlICAgIHsKICAgICAgICAgICAgcmlfbm9kZSA9IHY7cmlfY29zdCA9IGM7CiAgICAgICAgICAgIGZvbysrOwogICAgICAgIH0KICAgIH0KICAgIGludCBhbnMgPSAtSU5GOwoKICAgIEZPUihrLCAxLCBtIC0gMSkgICB7CiAgICAgICAgYW5zID0gbWF4KGFucywgbGVfY29zdCArIHJpX2Nvc3QgKyBmdW5jKGxlX25vZGUsIChrKSAtIDEsIHUpICsgZnVuYyhyaV9ub2RlLCAobSAtIGspIC0gMSwgdSkpOwogICAgfQogICAgYW5zID0gbWF4KGFucywgbGVfY29zdCArIGZ1bmMobGVfbm9kZSwgbSAtIDEsIHUpKTsKICAgIGFucyA9IG1heChhbnMsIHJpX2Nvc3QgKyBmdW5jKHJpX25vZGUsIG0gLSAxLCB1KSk7CgogICAgLy9jb3V0IDw8IHUgPDwgIiAiIDw8IG0gPDwgIiA6ICIgPDwgYW5zIDw8ICJcbiI7CiAgICByZXR1cm4gZHBbdV1bbV0gPSBhbnM7Cgp9CgppbnQgbWFpbigpICB7CiAgICAvL2NpbiA+PiBuID4+IHM7CiAgICBjaW4gPj4gbiA+PiBxOwogICAgRk9SKGksIDEsIG4gLSAxKSAgIHsKICAgICAgICBpbnQgdSwgdiwgdzsKICAgICAgICBjaW4gPj4gdSA+PiB2ID4+IHc7CiAgICAgICAgYWRqbFt1XS5QQih2KTsKICAgICAgICBhZGpsW3ZdLlBCKHUpOwogICAgICAgIGNvc3RbdV0uUEIodyk7CiAgICAgICAgY29zdFt2XS5QQih3KTsKICAgIH0KICAgIE1FTShkcCwgLTEpOwogICAgY291dCA8PCBmdW5jKDEsIHEsIDApIDw8ICJcbiI7CiAgICByZXR1cm4gMDsKfQovKioKKi8K