#include <bits/stdc++.h>
using namespace std;
const int maxn = 200007;
priority_queue<int> q[28];
vector<int> g[37];
int a[maxn];
char s[maxn];
int cmp(int x, int y) { return x > y; }
int main() {
  int n, m;
  cin >> n >> m;
  for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
  scanf("%s", s + 1);
  long long ans = 0;
  for (int i = 1; i <= n; i++) {
    for (int k = 1; k <= 26; k++)
      if (k != s[i] - 'a' + 1) {
        int x = m;
        while ((x--) && !q[k].empty()) {
          ans += q[k].top();
          q[k].pop();
        }
        while (!q[k].empty()) q[k].pop();
      }
    q[s[i] - 'a' + 1].push(a[i]);
  }
  for (int i = 1; i <= 26; i++) {
    int x = m;
    while ((x--) && !(q[i].empty())) {
      ans += q[i].top();
      q[i].pop();
    }
  }
  cout << ans;
  return 0;
}
