#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
long long c1, c2;
string s;
cin >> c1 >> c2 >> s;
int n = s.size();
// pre[i] = number of adjacent equal pairs in first i characters
vector<int> pre(n + 1, 0);
for (int i = 0; i < n - 1; i++) {
pre[i + 1] = pre[i];
if (s[i] == s[i + 1]) {
pre[i + 1]++;
}
}
pre[n] = pre[n - 1];
// dp[i] = min cost to handle first i characters
const long long INF = 1e18;
vector<long long> dp(n + 1, INF);
dp[0] = 0;
// Try every position
for (int i = 1; i <= n; i++) {
// Try every possible start for last piece
for (int j = 0; j < i; j++) {
// Count pairs in range [j, i)
int cnt = pre[i] - pre[j];
// Cost of pairs in this piece
long long cost = (long long)cnt * c1;
// Add split cost if not first piece
if (j > 0) cost += c2;
// Update answer
dp[i] = min(dp[i], dp[j] + cost);
}
}
cout << dp[n] << "\n";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CiAgICAKICAgIGxvbmcgbG9uZyBjMSwgYzI7CiAgICBzdHJpbmcgczsKICAgIGNpbiA+PiBjMSA+PiBjMiA+PiBzOwogICAgCiAgICBpbnQgbiA9IHMuc2l6ZSgpOwogICAgCiAgICAvLyBwcmVbaV0gPSBudW1iZXIgb2YgYWRqYWNlbnQgZXF1YWwgcGFpcnMgaW4gZmlyc3QgaSBjaGFyYWN0ZXJzCiAgICB2ZWN0b3I8aW50PiBwcmUobiArIDEsIDApOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuIC0gMTsgaSsrKSB7CiAgICAgICAgcHJlW2kgKyAxXSA9IHByZVtpXTsKICAgICAgICBpZiAoc1tpXSA9PSBzW2kgKyAxXSkgewogICAgICAgICAgICBwcmVbaSArIDFdKys7CiAgICAgICAgfQogICAgfQogICAgcHJlW25dID0gcHJlW24gLSAxXTsKICAgIAogICAgLy8gZHBbaV0gPSBtaW4gY29zdCB0byBoYW5kbGUgZmlyc3QgaSBjaGFyYWN0ZXJzCiAgICBjb25zdCBsb25nIGxvbmcgSU5GID0gMWUxODsKICAgIHZlY3Rvcjxsb25nIGxvbmc+IGRwKG4gKyAxLCBJTkYpOwogICAgZHBbMF0gPSAwOwogICAgCiAgICAvLyBUcnkgZXZlcnkgcG9zaXRpb24KICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgewogICAgICAgIC8vIFRyeSBldmVyeSBwb3NzaWJsZSBzdGFydCBmb3IgbGFzdCBwaWVjZQogICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgaTsgaisrKSB7CiAgICAgICAgICAgIC8vIENvdW50IHBhaXJzIGluIHJhbmdlIFtqLCBpKQogICAgICAgICAgICBpbnQgY250ID0gcHJlW2ldIC0gcHJlW2pdOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gQ29zdCBvZiBwYWlycyBpbiB0aGlzIHBpZWNlCiAgICAgICAgICAgIGxvbmcgbG9uZyBjb3N0ID0gKGxvbmcgbG9uZyljbnQgKiBjMTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIEFkZCBzcGxpdCBjb3N0IGlmIG5vdCBmaXJzdCBwaWVjZQogICAgICAgICAgICBpZiAoaiA+IDApIGNvc3QgKz0gYzI7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBVcGRhdGUgYW5zd2VyCiAgICAgICAgICAgIGRwW2ldID0gbWluKGRwW2ldLCBkcFtqXSArIGNvc3QpOwogICAgICAgIH0KICAgIH0KICAgIAogICAgY291dCA8PCBkcFtuXSA8PCAiXG4iOwogICAgCiAgICByZXR1cm4gMDsKfQ==