/*
Template belongs to : Himanshu Jaju [himanshujaju]
*/
#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
#define inp_s ios_base::sync_with_stdio(false)
#define DRT() int test_case;cin>>test_case;while(test_case--)
#define VI vector<int>
#define VS vector<string>
#define VLL vector<LL>
#define PII pair<int,int>
#define all(c) c.begin(),c.end()
#define sz(c) c.size()
#define clr(c) c.clear()
#define msi map<string,int>
#define msit map<string,int>::iterator
#define pb push_back
#define mp make_pair
#define GI(x) scanf("%d",&x);
#define GLL(x) scanf("%lld",&x);
#define GSTR(x) scanf("%s",x);
#define PI(x) printf("%d",x);
#define PLL(x) printf("%lld",x);
#define PSTR(x) printf("%s",x);;
#define FOR(i,a,b) for(int i=a;i<b;i++)
#define RFOR(i,a,b) for(int i=b-1;i>=a;i--)
#define gcd(a,b) __gcd(a,b)
#define MOD 1000000007
#define STEPS 1000
#define CHARACTER 26
int main()
{
DRT()
{
int n;
LL k;
cin>>n>>k;
if(k>STEPS) k = STEPS;
string str;
cin>>str;
long double mat[26][26] = {0};
FOR(i,0,26) FOR(j,0,26) cin>>mat[i][j];
long double dp[3][STEPS+1][CHARACTER] = {0};
FOR(i,0,sz(str)) dp[i][0][str[i]-'a']++;
FOR(x,0,sz(str)) FOR(i,0,STEPS) FOR(j,0,26) FOR(k,0,26) dp[x][i+1][k] += dp[x][i][j]*mat[j][k];
long double ans = 0;
set<string> kkkk;
while(n--)
{
string s;
cin>>s;
if(kkkk.find(s)!=kkkk.end() || sz(s) != sz(str)) continue;
kkkk.insert(s);
long double x = 1;
FOR(i,0,sz(s)) x = (x*dp[i][k][s[i]-'a']);
ans += x;
}
//printf("%.10lf\n",ans);
cout << ans << endl;
}
return 0;
}
LyoKVGVtcGxhdGUgYmVsb25ncyB0byA6IEhpbWFuc2h1IEphanUgW2hpbWFuc2h1amFqdV0KKi8KCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIGxvbmcgbG9uZyBpbnQgTEw7CgojZGVmaW5lIGlucF9zICAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKQojZGVmaW5lIERSVCgpICAgICBpbnQgdGVzdF9jYXNlO2Npbj4+dGVzdF9jYXNlO3doaWxlKHRlc3RfY2FzZS0tKQoKI2RlZmluZSBWSSAgICAgICAgdmVjdG9yPGludD4KI2RlZmluZSBWUyAgICAgICAgdmVjdG9yPHN0cmluZz4KI2RlZmluZSBWTEwgICAgICAgdmVjdG9yPExMPgojZGVmaW5lIFBJSSAgICAgICBwYWlyPGludCxpbnQ+CiNkZWZpbmUgYWxsKGMpICAgIGMuYmVnaW4oKSxjLmVuZCgpCiNkZWZpbmUgc3ooYykgICAgIGMuc2l6ZSgpCiNkZWZpbmUgY2xyKGMpICAgIGMuY2xlYXIoKQojZGVmaW5lIG1zaSAgICAgICBtYXA8c3RyaW5nLGludD4KI2RlZmluZSBtc2l0ICAgICAgbWFwPHN0cmluZyxpbnQ+OjppdGVyYXRvcgojZGVmaW5lIHBiICAgICAgICBwdXNoX2JhY2sKI2RlZmluZSBtcCAgICAgICAgbWFrZV9wYWlyCgojZGVmaW5lIEdJKHgpICAgICBzY2FuZigiJWQiLCZ4KTsKI2RlZmluZSBHTEwoeCkgICAgc2NhbmYoIiVsbGQiLCZ4KTsKI2RlZmluZSBHU1RSKHgpICAgc2NhbmYoIiVzIix4KTsKCiNkZWZpbmUgUEkoeCkgICAgIHByaW50ZigiJWQiLHgpOwojZGVmaW5lIFBMTCh4KSAgICBwcmludGYoIiVsbGQiLHgpOwojZGVmaW5lIFBTVFIoeCkgICBwcmludGYoIiVzIix4KTs7CgojZGVmaW5lIEZPUihpLGEsYikgICAgICBmb3IoaW50IGk9YTtpPGI7aSsrKQojZGVmaW5lIFJGT1IoaSxhLGIpICAgICBmb3IoaW50IGk9Yi0xO2k+PWE7aS0tKQoKI2RlZmluZSBnY2QoYSxiKSAgX19nY2QoYSxiKQojZGVmaW5lIE1PRCAgICAgICAxMDAwMDAwMDA3CgojZGVmaW5lIFNURVBTICAgICAxMDAwCiNkZWZpbmUgQ0hBUkFDVEVSIDI2CgppbnQgbWFpbigpCnsKICAgICAgRFJUKCkKICAgICAgewogICAgICAgICAgICBpbnQgbjsKICAgICAgICAgICAgTEwgazsKICAgICAgICAgICAgY2luPj5uPj5rOwogICAgICAgICAgICBpZihrPlNURVBTKSBrID0gU1RFUFM7CiAgICAgICAgICAgIHN0cmluZyBzdHI7CiAgICAgICAgICAgIGNpbj4+c3RyOwogICAgICAgICAgICBsb25nIGRvdWJsZSBtYXRbMjZdWzI2XSA9IHswfTsKICAgICAgICAgICAgRk9SKGksMCwyNikgRk9SKGosMCwyNikgY2luPj5tYXRbaV1bal07CgogICAgICAgICAgICBsb25nIGRvdWJsZSBkcFszXVtTVEVQUysxXVtDSEFSQUNURVJdID0gezB9OwogICAgICAgICAgICBGT1IoaSwwLHN6KHN0cikpIGRwW2ldWzBdW3N0cltpXS0nYSddKys7CgoKICAgICAgICAgICAgRk9SKHgsMCxzeihzdHIpKSBGT1IoaSwwLFNURVBTKSBGT1IoaiwwLDI2KSBGT1IoaywwLDI2KSBkcFt4XVtpKzFdW2tdICs9IGRwW3hdW2ldW2pdKm1hdFtqXVtrXTsKCiAgICAgICAgICAgIGxvbmcgZG91YmxlIGFucyA9IDA7CiAgICAgICAgICAgIHNldDxzdHJpbmc+IGtra2s7CiAgICAgICAgICAgIHdoaWxlKG4tLSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBzdHJpbmcgczsKICAgICAgICAgICAgICAgICAgY2luPj5zOwogICAgICAgICAgICAgICAgICBpZihra2trLmZpbmQocykhPWtra2suZW5kKCkgfHwgc3oocykgIT0gc3ooc3RyKSkgY29udGludWU7CiAgICAgICAgICAgICAgICAgIGtra2suaW5zZXJ0KHMpOwogICAgICAgICAgICAgICAgICBsb25nIGRvdWJsZSB4ID0gMTsKICAgICAgICAgICAgICAgICAgRk9SKGksMCxzeihzKSkgeCA9ICh4KmRwW2ldW2tdW3NbaV0tJ2EnXSk7CiAgICAgICAgICAgICAgICAgIGFucyArPSB4OwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vcHJpbnRmKCIlLjEwbGZcbiIsYW5zKTsKCQkJY291dCA8PCBhbnMgPDwgZW5kbDsKICAgICAgfQogICAgICByZXR1cm4gMDsKfQ==