#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; } } void bfs(){ e=0,CL(D,-1); for(auto&h:w)Q[e++]=h,D[h]=0; F(e)for(auto&h:g[Q[i]])if(!~D[h])D[h]=D[Q[i]]+1,Q[e++]=h; } 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&&k<165){ w.clear(); F(N)if(g[i].size()^1&&!A[i])w.PB(i); if(w.size()){ p=1,bfs(),w.clear(),b=INF; F(N)if(g[i].size()<2u&&D[i]<=b&&!A[i]&&!P[g[i][0]]++){ if(D[i]1; if(T>I)puts("DEFEND"),def(); else puts("ATTACK"),FL,atc(); return 0; }