#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll t,f[3010];
int find(int x){
if(f[x]==x)
return x;
return f[x]=find(f[x]);
}
struct node{
ll x,y,z;
}a[3010];
ll dist(ll x1,ll y1,ll z1,ll x2,ll y2,ll z2){
return (x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(z1-z2)*(z1-z2);
}
bool cmp(node a,node b){
if(a.x!=b.x)
if(a.y!=b.y)
return a.z<b.z;
else
return a.y<b.y;
return a.x<b.x;
}
int main(){
scanf("%d",&t);
while(t--){
ll n,h,r;
bool o=1;
scanf("%lld%lld%lld",&n,&h,&r);
for(int i=1;i<=n;i++){
scanf("%lld%lld%lld",&a[i].x,&a[i].y,&a[i].z);
f[i]=i;
}
sort(a+1,a+1+n,cmp);
for(int i=2;i<=n;i++){
if(dist(a[i-1].x,a[i-1].y,a[i-1].z,a[i].x,a[i].y,a[i].z)<=4*r*r)
f[find(i)]=find(i-1);
if(a[i].z+r>=h&&a[f[i]].z-r<=0){
printf("Yes\n");
o=0;
break;
}
}
if(o)
if(a[1].z+r>=h&&a[1].z-r<=0)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}