#include<iostream>
using namespace std;
long long h,f,r,n;
long long a[1001];
struct boo{
double x,y,z;
}u[1001];
bool qq(boo a,boo b){
long long d;
d=(a.x-b.x)*(a.x-b.x)*(a.y-b.y)*(a.y-b.y)*(a.z-b.z)*(a.z-b.z);
if(d<=2*2*r*r) return true;
else return false;
}
void d(int x){
if(f==1) return;
if(u[x].z+r>=h){
f=1;
return;
}
for(int i=1;i<=n;i++)
{
if(a[i]==1) continue;
if(qq(u[x],u[i])){
a[i]=1;
d(i);
}
}
}
int main(){
int T;
cin>>T;
for(int j=1;j<=T;j++) {
cin>>n>>h>>r;
f=0;
for(int i=1;i<=n;i++) a[i]=0;
for(int i=1;i<=n;i++)
cin>>u[i].x>>u[i].y>>u[i].z;
for(int i=1;i<=n;i++)
if(u[i].z<=r){
a[i]=1;
d(i);
//可以剪枝 if(f==1) break;
}
if(f==1) cout<<"yes"<<endl;
else cout <<"no"<<endl;
}
return 0;
}
我太难了