#include<cstdio>
#include<iostream>
#include<cmath>
#include <setjmp.h>
using namespace std;
int x[1005],y[1005],z[1005],n,h,r;long long um;
char beg[1005],End[1005],color[1005];
inline long long check(int i,int j){
long long t1=x[i]-x[j];
long long t2=y[i]-y[j];
long long t3=z[i]-z[j];
return (t1*t1+t2*t2+t3*t3);
}
jmp_buf jp ;
void dfs(int x){
beg[x]=2;
if (End[x]) longjmp(jp,1);
for (int i=1;i<=n;i++){
if (!beg[i] && check(x,i)<=um)
dfs(i);
}
}
int main(){
int cas; goto a;b:
scanf("%d",&cas);
while (cas--){if(1) {
scanf("%ld%ld%ld",&n,&h,&r);
for (int i=1;i<=n;i++);
for (int i=1;i<=n;i++){
beg[i]=End[i]=false;
scanf("%ld%ld%ld",&x[i],&y[i],&z[i]);
if (z[i]-r<=0)
beg[i]=1;
if (z[i]+r>=h)
End[i]=true;
}um=4LL*r*r;
for (int i=1;i<=n;i++)
if (beg[i]==1)
dfs(i);
puts("No");}else{a:if(!setjmp(jp))goto b;puts("Yes");}
}
return 0;
}