int a[2d5],k; graph g; int f(int i,int p,int w){ int x=w?a[i-1]%(k+1):0; rep[g.edge[i]](j,g.es[i]){ if(j!=p){ x^=f(j,i,!w); } } return x; } { ll@t; rep(t){ int@n; rd(k); int@(x,y)[n-1]; rd(a(n)); g.setEdge(n+1,n-1,x,y); wt(f(1,1,0)?'K':'P'); } }