#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define fi first
#define se second
#define pub push_back
#define pob pop_back
#define mpa make_pair
const int maxn = 1e6 + 10;
int n;
struct value{
int a, b, c, d;
};
value cost;
int posL[36], posR[36];
int L[maxn], R[maxn];
string s;
vector<pair<int, int>> a[maxn];
ll d[maxn];
void dij()
{
priority_queue<pair<ll, int>, vector<pair<ll, int>>, greater<pair<ll, int>>> pq;
memset(d, 0x3f, sizeof d);
d[1] = 0;
pq.push({0, 1});
while(!pq.empty())
{
pair<ll, int> top = pq.top(); pq.pop();
int u = top.se;
ll len = top.fi;
if(d[u] != len) continue;
if(u == n)
{
cout << d[u];
return ;
}
for(pair<int, int> ii : a[u])
{
int v = ii.fi;
int w = ii.se;
if(d[v] > d[u] + w)
{
d[v] = d[u] + w;
pq.push({d[v], v});
}
}
}
cout << d[n];
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
#define code code
// freopen("code.INP","r",stdin);
// freopen("code.OUT","w",stdout);
cin >> n;
cin >> cost.a >> cost.b >> cost.c >> cost.d;
cin >> s;
s = ' ' + s;
for(int i=1; i<=n; i++)
{
L[i] = posL[s[i] - 'a'];
posL[s[i] - 'a'] = i;
}
for(int i=n; i>=1; i--)
{
R[i] = posR[s[i] - 'a'];
posR[s[i] - 'a'] = i;
}
for(int i=1; i<n; i++)
{
a[i].pub({i + 1, cost.a});
a[i + 1].pub({i, cost.b});
}
for(int i=1; i<=n; i++)
{
if(R[i] != 0)
{
a[i].pub({R[i], cost.c});
}
if(L[i] != 0)
{
a[i].pub({L[i], cost.d});
}
}
dij();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBwdWIgcHVzaF9iYWNrCiNkZWZpbmUgcG9iIHBvcF9iYWNrCiNkZWZpbmUgbXBhIG1ha2VfcGFpcgpjb25zdCBpbnQgbWF4biA9IDFlNiArIDEwOwppbnQgbjsKc3RydWN0IHZhbHVlewogICAgaW50IGEsIGIsIGMsIGQ7Cn07CnZhbHVlIGNvc3Q7CmludCBwb3NMWzM2XSwgcG9zUlszNl07CmludCBMW21heG5dLCBSW21heG5dOwpzdHJpbmcgczsKdmVjdG9yPHBhaXI8aW50LCBpbnQ+PiBhW21heG5dOwpsbCBkW21heG5dOwp2b2lkIGRpaigpCnsKICAgIHByaW9yaXR5X3F1ZXVlPHBhaXI8bGwsIGludD4sIHZlY3RvcjxwYWlyPGxsLCBpbnQ+PiwgZ3JlYXRlcjxwYWlyPGxsLCBpbnQ+Pj4gcHE7CiAgICBtZW1zZXQoZCwgMHgzZiwgc2l6ZW9mIGQpOwogICAgZFsxXSA9IDA7CiAgICBwcS5wdXNoKHswLCAxfSk7CiAgICB3aGlsZSghcHEuZW1wdHkoKSkKICAgIHsKICAgICAgICBwYWlyPGxsLCBpbnQ+IHRvcCA9IHBxLnRvcCgpOyBwcS5wb3AoKTsKICAgICAgICBpbnQgdSA9IHRvcC5zZTsKICAgICAgICBsbCBsZW4gPSB0b3AuZmk7CiAgICAgICAgaWYoZFt1XSAhPSBsZW4pIGNvbnRpbnVlOwogICAgICAgIGlmKHUgPT0gbikKICAgICAgICB7CiAgICAgICAgICAgIGNvdXQgPDwgZFt1XTsKICAgICAgICAgICAgcmV0dXJuIDsKICAgICAgICB9CiAgICAgICAgZm9yKHBhaXI8aW50LCBpbnQ+IGlpIDogYVt1XSkKICAgICAgICB7CiAgICAgICAgICAgIGludCB2ID0gaWkuZmk7CiAgICAgICAgICAgIGludCB3ID0gaWkuc2U7CiAgICAgICAgICAgIGlmKGRbdl0gPiBkW3VdICsgdykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZFt2XSA9IGRbdV0gKyB3OwogICAgICAgICAgICAgICAgcHEucHVzaCh7ZFt2XSwgdn0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgY291dCA8PCBkW25dOwp9CmludCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKDApOwogICAgY291dC50aWUoMCk7CiAgICAjZGVmaW5lIGNvZGUgY29kZQovLyAgICBmcmVvcGVuKCJjb2RlLklOUCIsInIiLHN0ZGluKTsKLy8gICAgZnJlb3BlbigiY29kZS5PVVQiLCJ3IixzdGRvdXQpOwogICAgY2luID4+IG47CiAgICBjaW4gPj4gY29zdC5hID4+IGNvc3QuYiA+PiBjb3N0LmMgPj4gY29zdC5kOwogICAgY2luID4+IHM7CiAgICBzID0gJyAnICsgczsKICAgIGZvcihpbnQgaT0xOyBpPD1uOyBpKyspCiAgICB7CiAgICAgICAgTFtpXSA9IHBvc0xbc1tpXSAtICdhJ107CiAgICAgICAgcG9zTFtzW2ldIC0gJ2EnXSA9IGk7CiAgICB9CiAgICBmb3IoaW50IGk9bjsgaT49MTsgaS0tKQogICAgewogICAgICAgIFJbaV0gPSBwb3NSW3NbaV0gLSAnYSddOwogICAgICAgIHBvc1Jbc1tpXSAtICdhJ10gPSBpOwogICAgfQogICAgZm9yKGludCBpPTE7IGk8bjsgaSsrKQogICAgewogICAgICAgIGFbaV0ucHViKHtpICsgMSwgY29zdC5hfSk7CiAgICAgICAgYVtpICsgMV0ucHViKHtpLCBjb3N0LmJ9KTsKICAgIH0KICAgIGZvcihpbnQgaT0xOyBpPD1uOyBpKyspCiAgICB7CiAgICAgICAgaWYoUltpXSAhPSAwKQogICAgICAgIHsKICAgICAgICAgICAgYVtpXS5wdWIoe1JbaV0sIGNvc3QuY30pOwogICAgICAgIH0KICAgICAgICBpZihMW2ldICE9IDApCiAgICAgICAgewogICAgICAgICAgICBhW2ldLnB1Yih7TFtpXSwgY29zdC5kfSk7CiAgICAgICAgfQogICAgfQogICAgZGlqKCk7CiAgICByZXR1cm4gMDsKfQo=