import java.util.Scanner; public class No161 { static final int G = 0, C = 1, P = 2; static int[] m = new int[3], e = new int[3]; public static void main(String[] args) { int point = 0; Scanner sc = new Scanner(System.in); m[G] = sc.nextInt(); m[C] = sc.nextInt(); m[P] = sc.nextInt(); e[G] = e[C] = e[P] = 0; char[] s = new char[m[G] + m[C] + m[P]]; s = sc.next().toCharArray(); sc.close(); for (int i = 0; i < s.length; i++) { if (s[i] == 'G')e[G]++; if (s[i] == 'C')e[C]++; if (s[i] == 'P')e[P]++; } point += (same(G, C) + same(C, P) + same(P, G)) * 3; point += same(G, G) + same(C, C) + same(P, P); System.out.println(point); } static int same(int me, int ene) { int buf = Math.max(m[me], e[ene]) - Math.abs(m[me] - e[ene]); System.out.println(buf); m[me] -= buf; e[ene] -= buf; return buf; } }