#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
vector<int> e[N];
int ch[N];
int vis[N];
int cnt;
int n,k;
void dfs(int x)
{
vis[x]=1;
ch[x]=1;
for(auto it : e[x])
if(!vis[it])
{
dfs(it);
ch[x]+=ch[it];
if(ch[x]==k)
cnt++,ch[x]=0;
}
}
int main()
{
int T;
cin>>T;
while(T--)
{
cin>>n>>k;
memset(ch,0,sizeof(ch));
memset(vis,0,sizeof(vis));
for(int i=1;i<=n;i++)
e[i].clear();
int u,v;
for(int i=1;i<n;i++)
cin>>u>>v,e[u].push_back(v),e[v].push_back(u);
if(n%k!=0)
{
cout<<"NO"<<endl;
continue;
}
dfs(1);
if(cnt==n/k)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
return 0;
}