#include <bits/stdc++.h>
#define MAXN 100100
using namespace std;
int T,n,k,tot,siz[MAXN];
vector <int> G[MAXN];
inline void dfs(int u,int fa)
{
siz[u]=1;
for(int i=0;i<G[u].size();i++)
{
if(i==fa) continue;
dfs(i,u);
siz[u]+=siz[i];
}
if(siz[u]==k)
tot++,siz[u]-=k;
}
int main()
{
cin >> T;
while(T--)
{
tot=0;
memset(siz,0,sizeof(siz));
for(int i=0;i<=n;i++)
G[i].clear();
cin >> n >> k;
for(int i=1;i<=n-1;i++)
{
int x,y;
cin >> x >> y;
G[x].push_back(y);
G[y].push_back(x);
}
if((n/k)!=0)
{
cout << "NO" << endl;
continue;
}
dfs(1,-1);
if(tot==n/k)
cout << "YES" << endl;
else
cout << "NO" << endl;
}
return 0;
}