"""邻接表做法""" defsolve(): n = int(sys.stdin.readline()) stu = [0]+list(map(int, sys.stdin.readline().split())) ishui = [0]+list(map(int, sys.stdin.readline().split())) g = {i:[] for i inrange(n+1)} for i inrange(1,n+1): g[i].append(i) for i inrange(1,n+1): tmp = list(map(int, sys.stdin.readline().split())) for j inrange(n): if tmp[j] == 1: g[i].append(j+1) defdfs(x): for y in g[x]: if vis[y] ornot stu[y]: continue vis[y] = True ifnot link[y] or dfs(link[y]): link[y] = x returnTrue returnFalse ans = 0 link = [0]*(n+1) for i inrange(1,n+1): vis = [0]*(n+1) ifnot stu[i] or (stu[i] andnot ishui[i]): ifnot dfs(i): print("T_T") return print("^_^") for _ inrange(int(sys.stdin.readline())): solve()