#include<bits/stdc++.h>
using namespace std;
int n,t;
int h,r;
struct node{
int x,y,z;
}bal[2005];
bool flag[2005],fl;
bool p(int i,int j){
double l=(bal[i].x-bal[j].x)*(bal[i].x-bal[j].x)+(bal[i].y-bal[j].y)*(bal[i].y-bal[j].y)+(bal[i].z-bal[j].z)*(bal[i].z-bal[j].z);
return l<=4*r*r;
}
void dfs(int n,double b){
if(fl)return;
if(b<=0){
fl=1;
return;
}
flag[n]=1;
for(int i=1;i<=n;i++){
if(!flag[i]&&p(n,i)){
dfs(i,min(b,(double)(bal[i].z-r));
}
}
}
int main(){
cin>>t;
while(t--){
fl=0;
cin>>n>>h>>r;
memset(flag,0,sizeof(flag));
for(int i=1;i<=n;i++){
cin>>bal[i].x>>bal[i].y>>bal[i].z;
}
for(int i=1;i<=n;i++){
if(bal[i].z+r>=h){
dfs(i,bal[i].z-r);
}
}
if(fl)cout<<"Yes"<<endl;
if(!fl)cout<<"No"<<endl;
}
return 0;
}