#include<iostream>
#include<deque>
#include<utility>
#include<math.h>#define RIGHT_INDEX 2
#define LEFT_INDEX 6
usingnamespacestd;typedefpair<int,int>Rotate;// index, dirintK;deque<int>magnetic[4];// 0이면 N, 1이면 Sdeque<Rotate>rot;voidget_input(){rot.clear();for(inti=0;i<4;i++)magnetic[i].clear();cin>>K;inttemp;inttopni,dir;for(inti=0;i<4;i++){for(intj=0;j<8;j++){cin>>temp;magnetic[i].push_back(temp);}}for(inti=0;i<K;i++){cin>>topni>>dir;rot.push_back(Rotate(topni,dir));}}voidshift_magnetic(intindex,intdir){if(dir==1){// 시계 방향intlast=magnetic[index][7];magnetic[index].push_front(last);deque<int>::iteratoriter=magnetic[index].end()-1;magnetic[index].erase(iter);}else{// 시계 반대 방향intfirst=magnetic[index][0];magnetic[index].push_back(first);magnetic[index].pop_front();}}intsolve(){for(inti=0;i<rot.size();i++){intmag_index=rot[i].first-1;intdir=rot[i].second;intcheck[4]={0,};check[mag_index]=dir;// 방향 기록for(intj=mag_index+1;j<4;j++){if(magnetic[j][LEFT_INDEX]!=magnetic[j-1][RIGHT_INDEX]){check[j]=-check[j-1];}elsebreak;}for(intj=mag_index-1;j>=0;j--){if(magnetic[j][RIGHT_INDEX]!=magnetic[j+1][LEFT_INDEX]){check[j]=-check[j+1];}else{break;}}for(inti=0;i<4;i++){if(check[i]!=0)shift_magnetic(i,check[i]);}}intres=0;for(inti=0;i<4;i++)if(magnetic[i][0]==1)res+=pow(2,i);returnres;}intmain(){intsol[50]={0,};intntest;cin>>ntest;for(inti=0;i<ntest;i++){get_input();sol[i]=solve();}for(inti=0;i<ntest;i++)cout<<"#"<<i+1<<" "<<sol[i]<<endl;}