from collections import deque def solve(): n, k = map(int, input().split()) edges = [[] for _ in range(n)] for _ in range(n - 1): u, v = map(int, input().split()) u -= 1 v -= 1 edges[u].append(v) edges[v].append(u) A = list(map(int, input().split())) queue = deque() queue.append(0) dist = [-1] * n dist[0] = 0 while queue: pos = queue.popleft() for npos in edges[pos]: if dist[npos] != -1: continue dist[npos] = dist[pos] + 1 queue.append(npos) x = 0 for i in range(n): if dist[i] % 2 == 1: x ^= A[i] % (k + 1) return x != 0 for _ in range(int(input())): if solve(): print("K") else: print("P")