#include<bits/stdc++.h> usingnamespace std; #define ll long long constint INF = 0x3f3f3f3f; const ll inf = 0x3f3f3f3f3f3f3f3f; constint N = 2e6 + 10; const ll mod = 1e9 + 7; int T; int n, k; structE { int v; ll w; }; ll dp[N][2], w[N], ans; vector<E>G[N]; vector<int>vc[N]; boolcmp(int i, int j){ return dp[i][0] + w[i] > dp[j][0] + w[j]; } voiddfs(int u, int _fa){ dp[u][0] = dp[u][1] = 0; vc[u].clear(); for (E& e : G[u]) { if (e.v == _fa)continue; vc[u].push_back(e.v); w[e.v] = e.w; dfs(e.v, u); } if (vc[u].empty())return; sort(vc[u].begin(), vc[u].end(), cmp); int m = (int)vc[u].size(); vc[u].insert(vc[u].begin(), 0); ll sum = 0; for (int i = 1; i <= m; i++)sum += dp[vc[u][i]][0] + w[vc[u][i]]; if (m >= k - 1) { for (int i = 1; i <= k - 1; i++) { int v = vc[u][i]; dp[u][0] += dp[v][0] + w[v]; } for (int i = 1; i <= k - 1; i++) { int v = vc[u][i]; dp[u][1] = max(dp[u][1], dp[u][0] - dp[v][0] + dp[v][1]); } if (k > 1) { int vd = vc[u][k - 1]; for (int i = k; i <= m; i++) { int v = vc[u][i]; dp[u][1] = max(dp[u][1], dp[u][0] - dp[vd][0] - w[vd] + dp[v][1] + w[v]); } } dp[u][1] = max(dp[u][1], sum); } else { for (int i = 1; i <= m; i++) { dp[u][0] += dp[vc[u][i]][0] + w[vc[u][i]]; } for (int i = 1; i <= m; i++) { int v = vc[u][i]; dp[u][1] = max(dp[u][1], dp[u][0] - dp[v][0] + dp[v][1]); } } ans = max(ans, max(dp[u][0], dp[u][1])); if (m >= k) { ll tmp0 = 0, tmp1 = 0; int vk = vc[u][k]; tmp0 = dp[u][0] + dp[vk][0] + w[vk]; for (int i = 1; i <= k; i++) { int v = vc[u][i]; tmp1 = max(tmp1, tmp0 - dp[v][0] + dp[v][1]); } for (int i = k + 1; i <= m; i++) { int v = vc[u][i]; tmp1 = max(tmp1, tmp0 - dp[vk][0] - w[vk] + dp[v][1] + w[v]); } tmp1 = max(tmp1, sum); ans = max(ans, max(tmp0, tmp1)); } } intmain(){ scanf("%d", &T); while (T--) { scanf("%d%d", &n, &k); for (int i = 1; i <= n; i++)G[i].clear(); for (int i = 1; i < n; i++) { int u, v; ll w; scanf("%d%d%lld", &u, &v, &w); G[u].push_back(E{ v,w }); G[v].push_back(E{ u,w }); } if (k == 0) { puts("0"); continue; } ans = 0ll; dfs(1, 0); printf("%lld\n", ans); } return0; }