import sys
from queue import *
input = sys.stdin.readline
t = int(input())
for _ in range(t):
n, a, b = map(int, input().split())
a, b = a - 1, b - 1
adj = [[] for _ in range(n)]
for _ in range(n - 1):
u, v, w = map(int, input().split())
u, v = u - 1, v - 1
adj[u].append((v, w))
adj[v].append((u, w))
dep = [-1] * n
da = [0] * n
db = [-1] * n
ban = [False] * n
q = SimpleQueue()
q.put(a)
dep[a] = 0
while not q.empty():
u = q.get()
for v, w in adj[u]:
if dep[v] == -1:
q.put(v)
dep[v] = dep[u] + 1
da[v] = da[u] ^ w
ban[v] = (v == b) or ban[u]
q = SimpleQueue()
q.put(b)
db[b] = 0
while not q.empty():
u = q.get()
for v, w in adj[u]:
if db[v] == -1:
q.put(v)
db[v] = db[u] ^ w
da[b] = db[b] = -1
cand = set()
for i in range(n):
if not ban[i]:
cand.add(da[i])
flag = False
for i in range(n):
if i != b and db[i] in cand:
flag = "True"
print("YES" if flag else "NO")