#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define ul u<<1
#define ur u<<1|1
const int N=1e6;
const int mod=1e9+7;
int he[N],ne[N],e[N],idx;
int n,m,siz[N],f;
void add(int x,int y){
e[idx]=y;
ne[idx]=he[x];
he[x]=idx++;
}
void dfs(int u,int fa){
siz[u]=1;
for(int i=he[u];~i;i=ne[i]){
int v=e[i];
if(v==fa){
continue;
}
dfs(v,u);
siz[u]+=siz[v];
}
if (siz[u] == m) {
siz[u] =0;
f++;
}
}
int main(){
int T;
cin>>T;
while(T--){
memset(he,-1,sizeof(he));
memset(siz,0,sizeof(siz));
idx=0;
cin>>n>>m;
if(n%m!=0){
cout<<"NO\n";
continue;
}
f=0;
for(int i=1;i<n;i++){
int x,y;
scanf("%d%d",&x,&y);
add(x,y);
add(y,x);
}
dfs(1,0);
if(f==n/m){
printf("YES\n");
}else{
printf("NO\n");
}
}
return 0;
}
只AC了第9个测试点