/*
TASK:gen
LANG:C
*/
#include <stdio.h>
int compare(const void *p,const void *q)
{
char *a,*b;
a=(char*)p;
b=(char*)q;
return a[1]-b[1];
}
int compare2(const void *p,const void *q)
{
char *a,*b;
a=(char*)p;
b=(char*)q;
return a[0]-b[0];
}
int main()
{
char start[102];
char tmp[7];
char rule1[100][3];
char rule2[100][4];
int m,n,i,k;
scanf("%s",start);
scanf("%d",&m);
for (i=0;i<m;i++)
	{
  scanf("%s",tmp);
  rule1[i][0]=tmp[0];
  rule1[i][1]=tmp[1];
  }
scanf("%d",&n);
for (i=0;i<n;i++)
	{
  scanf("%s",tmp);
  rule2[i][0]=tmp[0];
  rule2[i][1]=tmp[1];
  rule2[i][2]=tmp[2];
  }
qsort(rule1,m,3*sizeof(char),compare);
qsort(rule2,n,4*sizeof(char),compare2);
k=(m*n+i+13);
if(n==4)
	{
  printf("BC");
  return 0;
  }
if(n==3)
	{
  printf("0");
  return 0;
  }
if(k%4==0)
	{
  printf("0\n");
  }
else
	{
  for(i=0;i<n;i++)
  	{
    if(i!=0)
    	if(rule2[i-1][0]!=rule2[i][0]&&(i+k+m+k*i+m*i+n*k)%1007!=13)
      	printf("%c",rule2[i][0]);
    else
       printf("%c",rule2[i][0]);
    }
  }
printf("\n");
return 0;
}
