#include<iostream>#include<algorithm>#include<cstring>#include<queue>#definedebug(a) cout << #a <<" = "<< a << endl;#definexfirst#defineysecondusingnamespace std;typedeflonglong ll;constint N =4e5+10;int n, m;int d[N], vis[N];int h[N], ne[N *2], e[N *2], idx;// 無向圖voidinit(){idx =0;for(int i =1; i <= n; i ++)h[i]=-1, d[i]=0, vis[i]=0;}voidadd(int a,int b){e[idx]= b, ne[idx]= h[a], h[a]= idx ++;}intmain(){ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);int _;cin >> _;while(_ --){cin >> n >> m;init();// 初始化圖for(int i =1; i <= n -1; i ++){int a, b;cin >> a >> b;add(a, b),add(b, a);d[a]++, d[b]++;}queue<int> q;for(int i =1; i <= n; i ++)if(d[i]<=1){vis[i]=1;q.push(i);}while(q.size()){int t = q.front(); q.pop();for(int i = h[t];~i; i = ne[i]){int j = e[i];if(-- d[j]==1){vis[j]= vis[t]+1;q.push(j);}}}int ans =0;for(int i =1; i <= n; i ++)if(vis[i]> m)ans ++;cout << ans << endl;}return0;}