/*Goran Flegar
Prva gimnazija Varazdin
Varazdin, Croatia
ACSL 2009-2010
Senior
Contest #3
Problem: "Senet"*/
#include<cstdio>
#include<cstdlib>
#include<algorithm>
using namespace std;
int brd[31];
bool move(int p,int f,int *lm,int *lmo){
if(p==30 ||
p+f==31){
*lm=31;
brd[p]=0;
return 1;
}
if(p<26
&& p+f>26)f=26-p;
if(p+f>31 ||
brd[p]==brd[p+f] || p>26 && p+f<31 || p+f==30 &&
brd[30])return 0;
swap(brd[p],brd[p+f]);
if(*lmo==p+f)*lmo=p;
if(p+f==27
&& brd[15]!=brd[27]){
swap(brd[15],brd[27]);
if(*lmo==15)*lmo=27;
p=15-f;
}
*lm=p+f;
return 1;
}
int main(void){
int
nb,nw,tmp,lm[2]={-1,-1},cp;
scanf("%d",&nb);
for(int
i=0;i<nb;++i){
scanf("%d",&tmp);
brd[tmp]=1;
}
scanf("%d",&nw);
for(int
i=0;i<nw;++i){
scanf("%d",&tmp);
brd[tmp]=2;
}
for(int
i=0;i<10;++i){
scanf("%d",&tmp);
cp=31;
do{
--cp;
for(;cp>-1
&& brd[cp]!=(i%2)+1;--cp);
//printf("OK\n");
}while(cp>-1
&& !move(cp,tmp,lm+i%2,lm+(i+1)%2));
if(i%2){
for(int
j=0;j<2;++j){
if(lm[j]==-1)printf("NO VALID MOVES ");
else
if(lm[j]==31)printf("DONE ");
else
printf("%d ",lm[j]);
}
printf("\n");
lm[0]=lm[1]=-1;
}
}
system("PAUSE");
return 0;
}