local mma = math.max
local n, k = io.read("*n", "*n")
local score_gu, score_cho, score_pa = io.read("*n", "*n", "*n", "*l")
local s = io.read()
-- 1, 2, 3 gu chi pa
local t = {}
for i = 1, #s do
  local tmp = s:sub(i, i)
  if tmp == "r" then
    t[i] = 1
  elseif tmp == "s" then
    t[i] = 2
  else
    t[i] = 3
  end
end
local retscore = 0
for ikrem = 0, k - 1 do
  local prv_g, prv_c, prv_p = 0, 0, 0
  local cur = 1 + ikrem
  while cur <= n do
    local nxt_g, nxt_c, nxt_p = 0, 0, 0
    if t[cur] == 1 then
      nxt_g = mma(prv_c, prv_p)
      nxt_c = mma(prv_g, prv_p)
      nxt_p = score_pa + mma(prv_g, prv_c)
    elseif t[cur] == 2 then
      nxt_g = score_gu + mma(prv_c, prv_p)
      nxt_c = mma(prv_g, prv_p)
      nxt_p = mma(prv_g, prv_c)
    else
        nxt_g = mma(prv_c, prv_p)
        nxt_c = score_cho + mma(prv_g, prv_p)
        nxt_p = mma(prv_g, prv_c)
    end
    prv_g, prv_c, prv_p = nxt_g, nxt_c, nxt_p
    cur = cur + k
  end
  retscore = retscore + mma(prv_g, mma(prv_c, prv_p))
end
print(retscore)
