T=int(input())
def union(p,i,j):
p1=parent(p,i)
p2=parent(p,j)
p[p1]=p2
def parent(p,i):
root=i
while p[root]!=root:
root=p[root]
while p[i]!=i:
x=i;i=p[i];p[x]=root
return root
class Node:
def __init__(self,x,y,z):
self.x=x
self.y=y
self.z=z
for _ in range(T):
n,h,r=map(int,input().split())
p=[i for i in range(n+2)]
m=[]
for i in range(1,n+1):
x,y,z=map(int,input().split())
m.append(Node(x,y,z))
if z<=r:union(p,i,0)
if (abs(z-h)<=r):union(p,i,n+1)
for