#include "testlib.h"
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <string>
#include <map>
#include <vector>
using namespace std;
bool mp[2010][2010];
int N;int sco=25;
vector<int> vec;
bool gt[2010];
int main(int argc,char ** argv){
registerTestlibCmd(argc, argv);
N=inf.readInt();
for(int i=2;i<=N;i++)
for(int j=1;j<i;j++){
char ch=inf.readChar();
while(ch!='R' && ch!='B') ch=inf.readChar();
mp[i][j]=mp[j][i]=(ch=='R');
}
for(int p=1;p<=N;p++){
int jans=ouf.readInt();
int pans=ans.readInt();
vec.clear();
for(int i=0;i<jans;i++)
vec.push_back(ouf.readInt(1,N));
for(int i=0;i<pans;i++)
ans.readInt();
if(jans<pans){
sco=0;continue;
}
if(jans>2*pans || vec[0]!=p){
sco=0;continue;
}
for(int i=0;i<jans;i++)
gt[vec[i]]=true;
bool dt=true;
for(int i=1;i<=N;i++)
if(!gt[i]){
dt=false;
break;
}
memset(gt,false,sizeof(gt));
if(!dt){
sco=0;continue;
}
bool used=false;int curr=mp[vec[0]][vec[1]];
for(int i=2;i<jans;i++){
if(curr!=mp[vec[i-1]][vec[i]]){
if(used){
sco=0;break;
}
used=true;curr=mp[vec[i-1]][vec[i]];
}
}
if(jans==pans)
sco=min(25,sco);
else sco=min(8+8*((2*pans-jans)/(pans-1)),sco);
}
if(sco==25)
quitf(_ok,"Answer Correct!");
else if(sco==0)
quitf(_wa,"Wrong Answer!");
else
quitp(1.0*sco/25,"Answer Partially Correct!");
return 0;
}