#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, k;
  cin >> n;
  cin >> k;
  int a[200003];
  for (int i = 0; i < n; i++) cin >> a[i];
  string s;
  cin >> s;
  long long int ans = 0;
  vector<vector<int>> vec;
  int i = 0;
  while (i < n) {
    int c = 1;
    vec.push_back(vector<int>());
    vec[vec.size() - 1].push_back(a[i]);
    while (i + 1 < n && s[i] == s[i + 1]) {
      vec[vec.size() - 1].push_back(a[i + 1]);
      std::push_heap(vec[vec.size() - 1].begin(), vec[vec.size() - 1].end());
      ++i;
      ++c;
    }
    for (auto &it : vec[vec.size() - 1]) {
    }
    c = min(c, k);
    while (c > 0) {
      ans += vec[vec.size() - 1][0];
      std::pop_heap(vec[vec.size() - 1].begin(), vec[vec.size() - 1].end());
      vec[vec.size() - 1].pop_back();
      --c;
    }
    ++i;
  }
  cout << ans;
  return 0;
}
