#include <bits/stdc++.h>
static const int Infinity = 2e9;
int main(int argc, const char* argv[]) {
  std::ios_base::sync_with_stdio(false);
  std::cin.tie(NULL);
  int n, a, b;
  std::cin >> n >> a >> b;
  std::string s;
  std::cin >> s;
  std::vector<int> v(n + 1);
  for (int i = 1; i <= n; i++) v[i] = Infinity;
  v[1] = a;
  int left = 2;
  for (int i = 2; i <= n; i++) {
    for (int j = left; j <= i; j++) {
      std::string s0 = s.substr(j - 1, i - j + 1);
      std::string s1 = s.substr(0, j - 1);
      if (s1.find(s0) != std::string::npos) {
        left = j;
        v[i] = std::min(v[i], v[j - 1] + b);
        break;
      }
    }
    v[i] = std::min(v[i], v[i - 1] + a);
  }
  std::cout << v[n] << std::endl;
  return 0;
}
