#include #include int main() { int T; std::cin >> T; while (T--) { int N, K; std::cin >> N >> K; std::vector> tree(N); for (int i = 1; i < N; i++) { int u, v; std::cin >> u >> v; u--, v--; tree[u].push_back(v); tree[v].push_back(u); } std::vector A(N); for (int &a : A) std::cin >> a; int nimsum = 0; auto solve = [&](auto &solve, int u, int p, bool b) -> void { if (b) nimsum ^= A[u] % (K + 1); for (int v : tree[u]) { if (v == p) continue; solve(solve, v, u, !b); } }; solve(solve, 0, 0, false); if (nimsum) std::cout << 'K' << std::endl; else std::cout << 'P' << std::endl; } }