#include <bits/stdc++.h>
using namespace std;
long long p[10000];
long long hashes[10000];
long long dp[10000];
const int INF = 1e9;
const long long MOD = 1e9 + 7;
bool test(int st, int m, long long hs) {
  int u = st - m;
  for (int i = 0; i <= u; i++) {
    long long hs2 = hashes[i + m - 1];
    if (i) {
      hs2 = (hs2 - hashes[i - 1] + MOD) % MOD;
    }
    if (hs == 1ll * hs2 * p[st - i] % MOD) {
      return true;
    }
  }
  return false;
}
int main() {
  ios_base::sync_with_stdio(0);
  int n, a, b;
  cin >> n >> a >> b;
  string s;
  cin >> s;
  p[0] = 1;
  for (int i = 1; i <= n; i++) {
    p[i] = 1ll * p[i - 1] * 31 % MOD;
    dp[i] = INF;
  }
  for (int i = 0; i <= n; i++) {
    hashes[i] = 1ll * p[i] * (s[i] - 'a' + 1) % MOD;
    if (i) {
      hashes[i] += hashes[i - 1];
    }
    hashes[i] %= MOD;
  }
  for (int i = 0; i <= n; i++) {
    int l = 0, r = min(i, n - i);
    while (l < r) {
      int m = (l + r + 1) / 2;
      if (test(i, m, (hashes[i + m - 1] - hashes[i - 1] + MOD) % MOD)) {
        l = m;
      } else {
        r = m - 1;
      }
    }
    dp[i + 1] = min(dp[i + 1], dp[i] + a);
    for (int j = i + 1, u = 0; u < l; j++, u++) {
      dp[j] = min(dp[j], dp[i] + b);
    }
  }
  cout << dp[n];
  return 0;
}
