#include <bits/stdc++.h>
using namespace std;
using SI = set<int>;
using VSI = vector<SI>;
using VI = vector<int>;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  int t;
  cin >> t;
  while (t--) {
    int n, k;
    cin >> n >> k;
    VSI G(n);
    for (int r = 0; r < n - 1; ++r) {
      int x, y;
      cin >> x >> y, --x, --y;
      G[x].insert(y);
      G[y].insert(x);
    }
    if (k == 1)
      cout << n - 1 << '\n';
    else {
      stack<int> pila;
      for (int x = 0; x < n; ++x)
        if (G[x].size() == 1) pila.push(x);
      VI Q(n);
      int res = 0;
      while (not pila.empty()) {
        int x = pila.top();
        pila.pop();
        if (not G[x].empty()) {
          int y = *G[x].begin();
          if (++Q[y] == k) {
            ++res;
            Q[y] = 0;
          }
          G[y].erase(x);
          if (G[y].size() == 1 and Q[y] == 0) pila.push(y);
        }
      }
      cout << res << '\n';
    }
  }
}
