'use strict';
(function(input){
  input=input.trim().split(/+s/);
  const N=input[0],
        K=input[1],
        R=input[2],
        S=input[3],
        P=input[4],
        str=input[5].split('');
  
  const twoDimArray = new Array(K).fill(0).map(x=>[]);
  let score = 0;
  
  for(let k=0;k<K;k++){
    let l=0;
    let s=k;
    while(l<N){
      twoDimArray[k][l]=str[s];
      l++;
      s+=K;
    }
    
    const dpr=[],dps=[],dpp=[];
    dpr[-1]=dps[-1]=dpp[-1]=0;
    twoDimArray[k].forEach(function(c,l){
      dpr[l]=(c==='s'?R:0)+Math.max(dps[l-1],dpp[l-1]);
      dps[l]=(c==='p'?S:0)+Math.max(dpp[l-1],dpr[l-1]);
      dpp[l]=(c==='r'?P:0)+Math.max(dpr[l-1],dps[l-1]);
    });
    score+=Math.max(dpr.pop(),dps.pop(),dpp.pop());
  }
  console.log(score);
})(require('fs').readFileSync('/dev/stdin','utf8'));