def chmax(DP,i,v): if DP[i] < v: DP[i] = v def main(): G, C, P = list(map(int, input().split())) S2 = list(input()) N = len(S2) S = [] for s in S2: if s == 'G': S.append(0) elif s == 'C': S.append(1) else: S.append(2) def judge(yuki, friend): diff = (friend - yuki)%3 if diff == 1: res = 3 elif diff == 2: res = 0 else: res = 1 return res dp = [[-1] * (C + 1) for _ in range(G + 1)] dp[0][0] = 0 for i in range(N): friend = S[i] pre = [[-1] * (C + 1) for _ in range(G + 1)] dp, pre = pre, dp for j in range(G + 1): for k in range(C + 1): val = pre[j][k] if val == -1: continue # これまで全部でi個使った # G ... j # C ... k # P ... i - j - k # G を出す # 寄与先・・dp[i + 1][j + 1][k] if j + 1 <= G: chmax(dp[j + 1], k, val + judge(0, friend)) # C を出す # dp[i + 1][j][k + 1] if k + 1 <= C: chmax(dp[j], k + 1, val + judge(1, friend)) # P を出す 今 i - j - k だけど、上限に達していない? if i - j - k < P: # dp[i + 1][j][k] chmax(dp[j], k, val + judge(2, friend)) ans = 0 for j in range(G + 1): for k in range(C + 1): ans = max(ans, dp[j][k]) print(ans) if __name__ == "__main__": main()