#include <bits/stdc++.h>
using namespace std;
int t,n,k;
int cnt;
vector<int> e[100005];
int siz[100005];
void read_(int &n){
n=0;
char ch=getchar();
while(!isdigit(ch)) ch=getchar();
while(isdigit(ch)){
n=(n<<3)+(n<<1)+(ch^48);
ch=getchar();
}
return ;
}
void dfs(int fa,int u){
siz[u]=1;
for(auto v:e[u]){
if(v==fa) continue;
dfs(u,v);
siz[u]+=siz[v];
}
if(siz[u]==k){
siz[u]=0,cnt++;
}
return ;
}
int main(){
read_(t);
while(t--){
memset(siz,0,sizeof siz);
read_(n),read_(k);
if(n%k){
puts("NO");
continue;
}
cnt=0;
for(int i = 0; i<=n; i++) e[i].clear();
for(int i = 1,u,v ;i<n; i++){
read_(u),read_(v);
e[u].push_back(v);
e[v].push_back(u);
}
dfs(0,1);
if(cnt==n/k) puts("YES");
else puts("NO");
}
return 0;
}