1 #include <bits/stdc++.h>
2 using namespace std;
3 int f[210][210][5];
4 int a[5][20][2];
5 int sum[5],strl;
6 inline int dp(int leftt,int rightt,int k){
7 if(f[leftt][rightt][k]!=-1) return f[leftt][rightt][k];
8 f[leftt][rightt][k]=0;
9 for(int i=1;i<=sum[k];i++){
10 for(int j=leftt;j<rightt;j++){
11 if(dp(leftt,j,a[k][i][1])&&dp(j+1,rightt,a[k][i][2])) f[leftt][rightt][k]=1;
12 }
13 }
14 return f[leftt][rightt][k];
15 }
16 void init(){
17 for(int i=1;i<=4;i++){
18 cin>>sum[i];
19 }
20 for(int i=1;i<=4;i++){
21 for(int j=1;j<=sum[i];j++){
22 char ch[5];
23 scanf("%s",ch);
24 if(ch[0]=='W') a[i][j][1]=1;
25 if(ch[0]=='I') a[i][j][1]=2;
26 if(ch[0]=='N') a[i][j][1]=3;
27 if(ch[0]=='G') a[i][j][1]=4;
28 if(ch[1]=='W') a[i][j][2]=1;
29 if(ch[1]=='I') a[i][j][2]=2;
30 if(ch[1]=='N') a[i][j][2]=3;
31 if(ch[1]=='G') a[i][j][2]=4;
32 }
33 }
34 memset(f,-1,sizeof(f));
35 string str;
36 cin>>str;
37 strl=str.size();
38 for(int i=0;i<strl;i++){
39 for(int j=1;j<=4;j++){
40 f[i+1][i+1][j+1]=0;
41 }
42 if(str[i]=='W') f[i+1][i+1][1]=1;
43 if(str[i]=='I') f[i+1][i+1][2]=1;
44 if(str[i]=='N') f[i+1][i+1][3]=1;
45 if(str[i]=='G') f[i+1][i+1][4]=1;
46 }
47 }
48 void solve(){
49 int flag=0;
50 for(int i=1;i<=4;i++){
51 if(dp(1,strl,i)){
52 if(i==1) cout<<"W";
53 if(i==2) cout<<"I";
54 if(i==3) cout<<"N";
55 if(i==4) cout<<"G";
56 flag=1;
57 }
58 }
59 if(!flag) cout<<"The name is wrong!"<<endl;
60 }
61 int main(){
62 init();
63 solve();
64 return 0;
65 }