#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=1e3+5;
int T;
int n,h;
int x[N],y[N],z[N];
vector<int> g[N];
bool end[N];
inline ll sqr(int i){return (ll)i*(ll)i;}
inline ll dis(int i,int j){return sqr(x[i]-x[j])+sqr(y[i]-y[j])+sqr(z[i]-z[j]);}
bool inq[N];
bool bfs(int s)
{
queue<int> que;
que.push(s);
inq[s]=1;
while(!que.empty())
{
int u=que.front();
que.pop();
inq[u]=0;
int size=g[u].size();
for(int i=0;i<size;++i)
{
int v=g[u][i];
if(end[v]) return 1;
if(!inq[v])
{
inq[v]=1;
que.push(v);
}
}
}
return 0;
}
int main()
{
scanf("%d",&T);
while(T--)
{
memset(end,0,sizeof(end));
memset(inq,0,sizeof(inq));
g[0].clear();
int r;
scanf("%d%d%d",&n,&h,&r);
for(int i=1;i<=n;++i) scanf("%d%d%d",&x[i],&y[i],&z[i]);
for(int i=1;i<=n;++i)
{
g[i].clear();
if(z[i]<=r) g[0].push_back(i);
if(h-z[i]<=r) end[i]=1;
for(int j=1;j<=n;++j)
if(i!=j&&dis(i,j)<=sqr(2*r))
g[i].push_back(j);
}
if(bfs(0)) printf("Yes\n");
else printf("No\n");
}
return 0;
}