#include<stdio.h>#include<string.h>#include<math.h>#include<iostream>#include<algorithm>#include<map>#include<set>#include<vector>#include<queue>using namespace std;typedef long long lld;#define pb push_back#define mp make_pair#define X first#define Y second#define inf 0xfffffff#define eps 1e-16bool ok[100010];int s[110];int a[110];int id[110];int get_id(int a[]){int base=1;int tmp=0;for(int i=0;i<4;i++){tmp+=(a[i]-1)*base;base*=10;}return tmp;}double val[8];bool vis[8];bool judge(int dep){if(dep == 7)return fabs(val[6]-24.0) < eps;for(int i=0;i<dep;i++)if(!vis[i])for(int j=i+1;j<dep;j++)if(!vis[j]){vis[i]=vis[j]=true;val[dep]=val[i]+val[j];if(judge(dep+1))return true;val[dep]=val[i]-val[j];if(judge(dep+1))return true;val[dep]=-val[i]+val[j];if(judge(dep+1))return true;val[dep]=val[i]*val[j];if(judge(dep+1))return true;if(fabs(val[j]) > eps){val[dep]=val[i]/val[j];if(judge(dep+1))return true;}if(fabs(val[i]) > eps){val[dep]=val[j]/val[i];if(judge(dep+1))return true;}vis[i]=vis[j]=false;}return false;}void init(){for(s[0]=1;s[0]<=10;s[0]++)for(s[1]=s[0];s[1]<=10;s[1]++)for(s[2]=s[1];s[2]<=10;s[2]++)for(s[3]=s[2];s[3]<=10;s[3]++){memset(vis,false,sizeof(vis));for(int i=0;i<4;i++)val[i]=s[i];if(judge(4)){for(int i=0;i<4;i++)id[i]=i;do{for(int i=0;i<4;i++)a[i]=s[id[i]];ok[get_id(a)]=true;}while(next_permutation(id,id+4));}}}char str[10];struct Card{int s;bool ok,change;void in(){scanf("%d",&s);scanf("%s",str);if(str[0] == 'r')change=false;elsechange=true;ok=true;}};Card sm[10];Card zj[10];Card f[10];int get_id(Card a[]){int base=1;int tmp=0;for(int i=0;i<4;i++){tmp+=(a[i].s-1)*base;base*=10;}return tmp;}int n,m;bool dfs(int dep){if(dep%2 == 0){if(ok[get_id(f)]){if(dep != 0)return true;if(!dfs(dep+1))return true;}for(int i=0;i<n;i++){if(!sm[i].ok)continue;for(int k=0;k<4;k++){Card save=f[k];f[k]=sm[i];sm[i].ok=false;bool flag=dfs(dep+1);sm[i].ok=true;f[k]=save;if(!flag)return true;}}return false;}else{if(!ok[get_id(f)])return true;for(int i=0;i<m;i++){if(!zj[i].change)continue;for(int k=0;k<4;k++){swap(zj[i],f[k]);bool flag=dfs(dep+1);swap(zj[i],f[k]);if(!flag)return true;}}return false;}}int main(){memset(ok,false,sizeof(ok));init();int cas;scanf("%d",&cas);for(int cc=1;cc<=cas;cc++){for(int i=0;i<4;i++)f[i].in();scanf("%d %d",&n,&m);for(int i=0;i<n;i++)sm[i].in();for(int i=0;i<m;i++)zj[i].in();if(dfs(0))printf("Sima Yi Wins!n");elseprintf("Zhang Jiao Wins!n");}return 0;}


