#include<bits/stdc++.h>
using namespace std ;
#define ll long long
#define rep(i,a,n) for ( int i = a ; i <= n ; i++ )
#define REP(i,a,n) for ( int i = a ; i >= n ; i-- )
typedef pair<int,int> ii ;
typedef vector<int> vi ;
const int N = 2e5+5 ;
const int INF = 1e9 ;
int t,n,w,b,m ;
int ans[27],a[N] ;
string s ;
vector<vi> G ;
signed main()
{
cin >> t ;
while(t--){
cin >> n >> m ;
cin >> s;
rep(i,0,26) ans[i] = 0 ;
rep(i,1,m) cin >> a[i] ;
sort(a+1,a+m+1) ;
rep(i,0,n-1) ans[s[i]-'a']++;
int cnt = a[m] , cur=1 ;
int i = m-1 ;
while(i>=1){
if ( a[i] < cnt )
{
REP(j,cnt-1,a[i]) ans[s[j]-'a'] += cur ;
cnt = a[i] ;
}
cur++ ;
i-- ;
}
REP(j,a[1]-1,0) ans[s[j]-'a'] += cur ;
rep(i,0,25) cout << ans[i] << " " ;
cout << endl ;
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZCA7CgojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIHJlcChpLGEsbikgZm9yICggaW50IGkgPSBhIDsgaSA8PSBuIDsgaSsrICkKI2RlZmluZSBSRVAoaSxhLG4pIGZvciAoIGludCBpID0gYSA7IGkgPj0gbiA7IGktLSApCgp0eXBlZGVmIHBhaXI8aW50LGludD4gaWkgOwp0eXBlZGVmIHZlY3RvcjxpbnQ+IHZpIDsKCmNvbnN0IGludCBOID0gMmU1KzUgOwpjb25zdCBpbnQgSU5GID0gMWU5IDsKCmludCB0LG4sdyxiLG0gOwppbnQgYW5zWzI3XSxhW05dIDsgCgpzdHJpbmcgcyA7CnZlY3Rvcjx2aT4gRyA7CgpzaWduZWQgbWFpbigpCnsKCWNpbiA+PiB0IDsgCgl3aGlsZSh0LS0pewoJCWNpbiA+PiBuID4+IG0gOyAKCQljaW4gPj4gczsgIAoJCXJlcChpLDAsMjYpIGFuc1tpXSA9IDAgOyAKCQlyZXAoaSwxLG0pIGNpbiA+PiBhW2ldIDsgCgkJc29ydChhKzEsYSttKzEpIDsgCgkJcmVwKGksMCxuLTEpIGFuc1tzW2ldLSdhJ10rKzsKCQlpbnQgY250ID0gYVttXSAsIGN1cj0xIDsKCQlpbnQgaSA9IG0tMSA7IAoJCXdoaWxlKGk+PTEpewoJCQlpZiAoIGFbaV0gPCBjbnQgKSAKCQkJewoJCQkJUkVQKGosY250LTEsYVtpXSkgYW5zW3Nbal0tJ2EnXSArPSBjdXIgOyAKCQkJCWNudCA9IGFbaV0gOyAKCQkJfQoJCQljdXIrKyA7IAoJCQlpLS0gOyAKCQl9CgkJUkVQKGosYVsxXS0xLDApIGFuc1tzW2pdLSdhJ10gKz0gY3VyIDsgCgkJcmVwKGksMCwyNSkgY291dCA8PCBhbnNbaV0gPDwgIiAiIDsgCgkJY291dCA8PCBlbmRsIDsgCgl9Cn0KCgoK