#include <bits/stdc++.h>
using namespace std;
int dp[5001];
int a, b, n;
string s;
int calc(int start, int x) {
  if (x == 1) return a;
  if (x == 0) return 0;
  if (dp[x] == -1) {
    int ans = calc(0, x - 1) + a;
    int z[x];
    for (int i = 0; i < x; i++) z[i] = 0;
    char zs[x];
    for (int i = 0; i < x; i++) zs[i] = s[i];
    reverse(zs, zs + x);
    for (int i = 1, l = 0, r = 0; i < x; i++) {
      if (i <= r) z[i] = min(r - i + 1, z[i - l]);
      while (i + z[i] < x && zs[z[i]] == zs[i + z[i]]) z[i]++;
      if (i + z[i] - 1 > r) {
        l = i;
        r = i + z[i] - 1;
      }
    }
    reverse(z, z + x);
    int maximal = 0;
    for (int i = 0; i < x; i++) {
      maximal = max(maximal, min(z[i], x - i - 1));
    }
    for (int j = 1; j <= maximal; j++) {
      ans = min(ans, calc(0, x - maximal) + b);
    }
    dp[x] = ans;
  }
  return dp[x];
}
int main() {
  cin >> n >> a >> b;
  cin >> s;
  for (int i = 0; i < 5001; i++) dp[i] = -1;
  cout << calc(0, n) << endl;
}
