#include using namespace std; void fast_io() { ios_base::sync_with_stdio(false); cin.tie(nullptr); } void solve() { int n, k; cin >> n >> k; vector> g(n); for (int i = 0; i < n - 1; i++) { int x, y; cin >> x >> y; x--, y--; g[x].push_back(y); g[y].push_back(x); } vector a(n); for (int i = 0; i < n; i++) { cin >> a[i]; } vector dep(n, -1); deque q{0}; dep[0] = 0; int grundy = 0; while (!q.empty()) { int x = q.front(); q.pop_front(); for (int y : g[x]) { if (dep[y] == -1) { dep[y] = dep[x] + 1; q.push_back(y); } } if (dep[x] % 2) { grundy ^= (a[x] % (k + 1)); } } cout << (grundy == 0 ? "P" : "K") << '\n'; } int main() { fast_io(); int t; cin >> t; for (; t--;) { solve(); } }