#include<iostream>
#include<queue>
#include<cmath>
#include<string>
#include<cstring>
using namespace std;
int t,n,h,r,x[100000],y[100000],z[100000],vis[10000000];
bool pd=0;
int dist(int a,int b,int c,int d,int e,int f)
{
return sqrt(pow(a-d,2)+pow(b-e,2)+pow(c-f,2));
}
bool bfs(int p)
{
memset(vis,0,sizeof(vis));
queue <int > qu;
int xx=0,yy=0,zz=0;
qu.push(p);
vis[p]=1;
while(!qu.empty())
{
xx=x[qu.front()],yy=y[qu.front()],zz=z[qu.front()];
qu.pop();
if(yy+r>=h) return 1;
for(int i=1;i<=n;i++)
{
//
if(dist(xx,yy,zz,x[i],y[i],z[i])<=2*r&&!vis[i])
{
vis[i]=1;
qu.push(i);
}
}
}
return 0;
}
int main()
{
cin>>t;
for(int i=1;i<=t;i++)
{
cin>>n>>h>>r;
for(int j=1;j<=n;j++)
{
cin>>x[j]>>y[j]>>z[j];
}
pd=0;
for(int l=1;l<=n;l++)
{
if(bfs(l))
{
pd=1;
cout<<"Yes\n";
}
}
if(!pd) cout<<"No\n";
}
}
啊啊啊啊啊啊阿啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊嗷嗷嗷嗷嗷啊啊啊啊