#include<bits/stdc++.h>
using namespace std;
bool chg[5][5][5];
int W,I,N,G;
char c;
int a,b;
void getin(int m,int k){
for(int i=1;i<=m;i++){
cin>>c;switch(c){
case'W':a=1;
case'I':a=2;
case'N':a=3;
case'G':a=4;
}
cin>>c;switch(c){
case'W':b=1;
case'I':b=2;
case'N':b=3;
case'G':b=4;
}
chg[a][b][k]=1;
}
}
const int M=2e2+5;
string sb;
int n;
int s[M];
int dp[M][M][5];
void init(){
n=sb.size();
for(int i=1;i<=n;i++){
switch(sb[i-1]){
case'W':s[i]=1;
case'I':s[i]=2;
case'N':s[i]=3;
case'G':s[i]=4;
}
dp[i][i][s[i]]=1;
}
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>W>>I>>N>>G;
getin(W,1);
getin(I,2);
getin(N,3);
getin(G,4);
cin>>sb;
init();
for(int len=2;len<=n;len++)
for(int i=1,j=len;j<=n;i++,j++)
for(int k=i;k<=j-1;k++)
for(int _1=1;_1<=4;_1++)
for(int _2=1;_2<=4;_2++)
for(int _3=1;_3<=4;_3++)
dp[i][j][_3]=(dp[i][k][_1] and dp[k+1][j][_2] and chg[_1][_2][_3]);
bool f=1;
if(dp[1][n][1]) f=0,cout<<"W";
if(dp[1][n][2]) f=0,cout<<"I";
if(dp[1][n][3]) f=0,cout<<"N";
if(dp[1][n][4]) f=0,cout<<"G";
if(f) cout<<"The name is wrong!";
return 0;
}