#include using namespace std; #define PB push_back #define ZERO (1e-10) #define INF int(1e9+1) #define CL(A,I) (memset(A,I,sizeof(A))) #define DEB printf("DEB!\n"); #define D(X) cout<<" "<<#X": "<B&&A-ZERO pll; typedef vector vi; typedef pair ii; typedef vector vii; #define IN(n) int n;scanf("%d",&n); #define FOR(i, m, n) for (int i(m); i < n; i++) #define F(n) FOR(i,0,n) #define FF(n) FOR(j,0,n) #define FT(m, n) FOR(k, m, n) #define aa first #define bb second void ga(int N,int *A){F(N)scanf("%d",A+i);} #define MX 128 #define FL fflush(stdout) vi g[MX],w; vii o; int N,T,a,b,I,d=-1,A[MX],X,e,D[MX],Q[MX],P[MX]; bool dfs(int u,int p){ if(u==a)return 1; for(auto&h:g[u])if(p^h&&dfs(h,u))return o.PB({u,h}),1; return 0; } void def(){ F(N)if(g[i].size()>1u)printf("%d ",i),A[i]=1,--T; F(N)if(T&&g[i].size()==1u)printf("%d\n",d=i),A[i]=1,--T; FL; while(~scanf("%d",&a)&&~a){ if(A[a]){ puts("0"),FL; continue; } A[d]=0,A[a]=1,o.clear(),dfs(d,-1),d=a,printf("%lu",o.size()); for(auto&h:o)printf(" %d %d",h.aa,h.bb); puts(""),FL; } } bool ok(int u){ for(auto&h:g[u])if(A[h])return 1; return A[u]; } void atc(){ F(T)scanf("%d",&a),++A[a]; FT(0,365){ bool p=0; CL(P,0); F(N)if(!ok(i)){ printf("%d\n",i),FL,p=1; break; } if(!p){ vi r; F(N)if(g[i].size()==1u&&!A[i]&&!P[g[i][0]]++)r.PB(i); printf("%d\n",r[rand()%r.size()]),FL; } if(!~scanf("%d",&X)||!~X)break; F(X)scanf("%d%d",&a,&b),--A[a],++A[b]; } } int main(void){ scanf("%d%d",&N,&T); F(N-1)scanf("%d%d",&a,&b),g[a].PB(b),g[b].PB(a); F(N)I+=g[i].size()>1; if(T>I)puts("DEFEND"),def(); else puts("ATTACK"),FL,atc(); return 0; }