#include <bits/stdc++.h>
using namespace std;
int main()
{
int n, k;
cin >> n >> k;
vector<int> a(n);
for (int i = 0; i < n; ++i) cin >> a[i];
string s;
cin >> s;
long long ans = 0;
for (int i = 0; i < n; ++i)
{
int j = i;
vector<int> vals;
while (j < n && s[i] == s[j])
{
vals.push_back(a[j]);
++j;
}
sort(vals.rbegin(), vals.rend());
ans += accumulate(vals.begin(), vals.begin() + min(k, int(vals.size())), 0ll);
i = j - 1;
}
cout << ans << endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSAKewoJaW50IG4sIGs7CgljaW4gPj4gbiA+PiBrOwoJdmVjdG9yPGludD4gYShuKTsKCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKSBjaW4gPj4gYVtpXTsKCXN0cmluZyBzOwoJY2luID4+IHM7Cglsb25nIGxvbmcgYW5zID0gMDsKCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKSAKCXsKCQlpbnQgaiA9IGk7CgkJdmVjdG9yPGludD4gdmFsczsKCQl3aGlsZSAoaiA8IG4gJiYgc1tpXSA9PSBzW2pdKSAKCQl7CgkJCXZhbHMucHVzaF9iYWNrKGFbal0pOwoJCQkrK2o7CgkJfQoJCXNvcnQodmFscy5yYmVnaW4oKSwgdmFscy5yZW5kKCkpOwoJCWFucyArPSBhY2N1bXVsYXRlKHZhbHMuYmVnaW4oKSwgdmFscy5iZWdpbigpICsgbWluKGssIGludCh2YWxzLnNpemUoKSkpLCAwbGwpOwoJCWkgPSBqIC0gMTsKCX0KCWNvdXQgPDwgYW5zIDw8IGVuZGw7CglyZXR1cm4gMDsKfQ==