#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef pair P; #define MOD 1000000007 // 10^9 + 7 #define INF 1000000000 // 10^9 #define LLINF 1LL<<60 int main() { cin.tie(0); ios::sync_with_stdio(false); int A[3]; for (int i = 0; i < 3; i++) cin >> A[i]; string S; cin >> S; int B[3]; for (int i = 0; i < 3; i++)B[i] = 0; for (int i = 0; i < S.size(); i++) { if (S[i] == 'G') B[0]++; if (S[i] == 'C') B[1]++; if (S[i] == 'P') B[2]++; } int ans = 0; int w = min(A[0], B[1]); ans += 3 * w; A[0] -= w; B[1] -= w; w = min(A[1], B[2]); ans += 3 * w; A[1] -= w; B[2] -= w; w = min(A[2], B[0]); ans += 3 * w; A[2] -= w; B[0] -= w; if (B[0] > 0) { if (A[0] > 0) { int n = min(A[0], B[0]); A[0] -= n; B[0] -= n; ans += n; } if (A[1] > 0) { int n = min(A[1], B[0]); A[0] -= n; B[0] -= n; } } if (B[1] > 0) { if (A[1] > 0) { int n = min(A[1], B[1]); A[1] -= n; B[1] -= n; ans += n; } if (A[2] > 0) { int n = min(A[2], B[1]); A[2] -= n; B[1] -= n; } } if (B[2] > 0) { if (A[2] > 0) { int n = min(A[2], B[2]); A[0] -= n; B[0] -= n; ans += n; } if (A[0] > 0) { int n = min(A[0], B[2]); A[0] -= n; B[2] -= n; } } cout << ans << endl; return 0; }