#include <bits/stdc++.h>
using namespace std;
const int M = 1e6 + 7;
const long long q = 7057594037927903;
const long long prime = 2137;
int n, k, akt;
long long wynik, tab[M];
vector<long long> v;
string napis;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> k;
  for (int i = 0; i < n; i++) cin >> tab[i];
  cin >> napis;
  v.push_back(tab[0]);
  for (int i = 1; i < n; i++) {
    if (napis[i] != napis[i - 1]) {
      sort(v.begin(), v.end());
      reverse(v.begin(), v.end());
      akt = 0;
      for (int j = 0; j < v.size(); j++) {
        if (akt == k) break;
        wynik += v[j];
        akt++;
      }
      v.resize(0);
      v.push_back(tab[i]);
    } else
      v.push_back(tab[i]);
  }
  sort(v.begin(), v.end());
  reverse(v.begin(), v.end());
  akt = 0;
  for (int j = 0; j < v.size(); j++) {
    if (akt == k) break;
    wynik += v[j];
    akt++;
  }
  cout << wynik;
  return 0;
}
