# https://yukicoder.me/problems/no/2076 def main(): N, A, B = map(int, input().split()) S = input() S = S.replace("con", "_") array = [] prev = False for s in S: if s == "_": if not prev: prev = True array.append(1) else: array[-1] += 1 else: prev = False count = sum(array) a_max = (count // A) + (1 if count % A > 0 else 0) dp = [-1] * (a_max + 1) dp[0] = 0 for n in array: new_dp = [-1] * (a_max +1) n_a = 0 while A * n_a <= n: b = n - A * n_a b //= B for v in range(a_max + 1): if dp[v] == -1: break if v + n_a > a_max: break new_dp[v + n_a] = max(new_dp[v + n_a], dp[v] + b) n_a += 1 dp = new_dp answer = 0 for a in range(a_max + 1): max_b = dp[a] if max_b == -1: continue v = min(max_b, a) if a > v: ans = 2 * v + 1 else: ans = 2 * v answer = max(answer, ans) print(answer) if __name__ == "__main__": main()