#include #define rep(i,n) for(int i=(0);i<(n);i++) using namespace std; typedef long long ll; typedef unsigned long long ull; template bool chmax(T &a, const T &b) { if (a bool chmin(T &a, const T &b) { if (a>b) { a=b; return 1; } return 0; } string s; int sco(char c, int i){ char x = s[i]; if(c == 'G'){ if(x == 'G') return 1; if(x == 'C') return 3; return 0; } if(c == 'C'){ if(x == 'G') return 0; if(x == 'C') return 1; return 3; } // p if(x == 'G') return 3; if(x == 'C') return 0; return 1; } int main(){ cin.tie(0); ios::sync_with_stdio(false); int g, c, p; cin >> g >> c >> p; cin >> s; int n = s.size(); vector ps(n, -1); // win rep(i, n){ if(ps[i] > -1) continue; if(s[i] == 'G' && p > 0){ ps[i] = 3; p--; } if(s[i] == 'C' && g > 0){ ps[i] = 3; g--; } if(s[i] == 'P' && c > 0){ ps[i] = 3; c--; } } // draw rep(i, n){ if(ps[i] > -1) continue; if(s[i] == 'G' && g > 0){ ps[i] = 1; g--; } if(s[i] == 'C' && c > 0){ ps[i] = 1; c--; } if(s[i] == 'P' && p > 0){ ps[i] = 1; p--; } } // lose rep(i, n){ if(ps[i] > -1) continue; ps[i] = 0; } int ans = 0; rep(i, n) ans += ps[i]; cout << ans << endl; }