#include <bits/stdc++.h>
using namespace std;
char s[200005];
int lx(int pos) {
  int i;
  for (i = 1;; i++) {
    if (s[pos] != s[pos + i]) return i;
  }
}
bool cmp(int a, int b) { return a > b; }
int main() {
  long long ans = 0;
  int n, i, j, l, k, a[200004], num;
  scanf("%d%d", &n, &k);
  for (i = 0; i < n; i++) scanf("%d", &a[i]);
  scanf("%s", s);
  for (i = 0; i < n; i++) {
    num = lx(i);
    if (num >= k) {
      sort(a + i, a + i + num, cmp);
      for (j = 0; j < k; j++) ans += a[i + j];
    } else {
      for (j = 0; j < num; j++) ans += a[i + j];
    }
    i += num - 1;
  }
  printf("%lld\n", ans);
  return 0;
}
