T = int(input()) for _ in range(T): N,K = map(int,input().split()) G = [[] for i in range(N)] for i in range(N-1): u,v = map(int,input().split()) u -= 1 v -= 1 G[u].append(v) G[v].append(u) A = list(map(int,input().split())) parent = [-1 for i in range(N)] todo = [0] dist = [-1 for i in range(N)] dist[0] = 0 while len(todo): s = todo.pop() for t in G[s]: if dist[t] == -1: parent[t] = s dist[t] = dist[s] + 1 todo.append(t) H = [(dist[s],s) for s in range(N)] H.sort() while len(H): d,s = H.pop() if d % 2: A[parent[s]] += A[s] g = 0 for s in G[0]: g ^= (A[s] % (K + 1)) if g: print('K') else: print('P')