- /* 
- 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==