#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int n, a, b;
  cin >> n >> a >> b;
  string s;
  cin >> s;
  string sr = s;
  reverse(sr.begin(), sr.end());
  sr = sr + '$' + sr;
  vector<vector<int>> z(n);
  for (int k(0); k < n; ++k) {
    int m = 2 * n + 1 - k;
    z[k].resize(m);
    int L = 0;
    int R = 0;
    for (int i(1); i < m; ++i) {
      if (i <= R) z[k][i] = min(R - i + 1, z[k][i - L]);
      while (i + z[k][i] < m && sr[k + z[k][i]] == sr[k + i + z[k][i]])
        z[k][i]++;
      if (i + z[k][i] - 1 > R) {
        L = i;
        R = i + z[k][i] - 1;
      }
    }
  }
  vector<int> dp(n);
  dp[0] = a;
  for (int i(1); i < n; ++i) {
    dp[i] = dp[i - 1] + a;
    int u = n - i + 1;
    for (int j(n - 1); j > n - i - 1; --j) {
      int len = min(z[j][u], j - (n - i - 1));
      dp[i] = min(dp[i], dp[i - len] + b);
      u++;
    }
  }
  cout << dp[n - 1] << endl;
  return 0;
}
