#include<iostream>
#include<cmath>
using namespace std;
char id[16],s[100][4],ans[100],ans2[100];
int ID(char id[],int len){
int n=0;
for(int i=1;i<=16;i++){
if(id[i-1]=='1') n+=pow(2,16-i);
}
if(n<1||n>10000){
return false;
}
else{
cout<<"ID: "<<n<<endl;
return id[15]-'0'+1;
}
}
void test_type(int Rtype,char k[]){
Rtype-=1;
if(k[0]==k[1]){
cout<<"Type Incorrect"<<endl;return;
}
int Stype=k[1]-'0';
if(Stype==Rtype){
cout<<"Type Correct"<<endl;return;
}
else{
cout<<"Type Incorrect"<<endl;return;
}
}
void st_ans(int n){
int g=0;
for(int i=0;i<n;i++){
bool flag=0;
for(int j=0;j<4;j++){
if(flag==1){
ans2[g]='E';
break;
}
if(s[i][j]=='1'){
ans2[g]=j+'A';
g++;flag=1;
}
}
if(flag==0){
ans2[g]='E';
}
}
}
double test_ans(char Sans[100],char Tans[100],int len){
double num=100.00/(len*1.0);
double sum=0.0;
for(int i=0;i<len;i++){
if(Sans[i]==Tans[i]){
sum+=num;
}
}
return sum;
}
int main(){
int tx,n;
cin>>tx>>n;
for(int i=0;i<n;i++){
cin>>ans[i];
}
for(int t=0;t<tx;t++){
bool f=0;
for(int j=1;j<=16;j++){
cin>>id[j-1];
}
int Id=ID(id,16);
if(!Id){
f=1;
cout<<"Wrong ID"<<endl;
}
char kx[2];
cin>>kx[0]>>kx[1];
if(f==0)test_type(Id,kx);
for(int j=0;j<n;j++){
for(int k=0;k<4;k++){
cin>>s[j][k];
}
}
if(f==0)st_ans(n);
if(f==0){
double sum=test_ans(ans2,ans,n);
printf("%.1f\n",sum);
}
}
}