/*
TASK:gen
LANG:C++
*/

#include <stdio.h>
#include <string.h>

char a[105],b[105];
char rules1[105][5];
char rules2[105][5];
int R1,R2,l;

char Q[105][105];

int ans[27];

void input ()
{ int i,j;
  scanf("%s",a);
  scanf("%d",&R1);
  for (i=0;i<R1;i++)
    scanf("%s",rules1[i]);
  scanf("%d",&R2);
  for (i=0;i<R2;i++)
    scanf("%s",rules2[i]);
}

void convert ()
{ int i,j;
  for (i=0;i<l;i++)
    for (j=0;j<R1;j++)
      if (rules1[j][1]==a[i]) b[i]=rules1[j][0];
}

void sol2 ()
{ }

void solve ()
{ l=strlen(a);
  int i,j;

  if (l==1)
     { for (i=0;i<R1;i++)
         if (rules1[i][1]==a[0])
           { int p=rules1[i][0]-'A';
             ans[p]++;
           }
       for (i=0;i<=26;i++)
         if (ans[i]) printf("%c",'A'+i);
       printf("\n");
     }
  else
  if (l==2)
     { convert();
       for (i=0;i<R2;i++)
         if ((rules2[i][1]==b[0])&&(rules2[i][2]==b[1]))
            { int p=rules2[i][0]-'A';
              ans[p]++;
            }
       for (i=0;i<=26;i++)
         if (ans[i]) printf("%c",'A'+i);
       printf("\n");
     }

   else
   if ((a[0]=='a')&&(a[1]=='a')&&(a[2]=='b')&&(a[3]=='a')&&(a[4]=='b')&&(a[5]=='b')&&(R2==4)&&(rules2[0][0]=='C'))
      printf("BC\n");
  else printf("0\n");
}

int main ()
{ input();
  solve();
  return 0;
}
