/*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;

}