#!/usr/bin/env python #coding:utf8 def read(): selfN = map(int, raw_input().split()) s = raw_input() return selfN, s def work((selfN, s)): oppN = [0, 0, 0] for ch in s: oppN["GCP".find(ch)] += 1 ans = 0 # win for i in range(3): n = min(selfN[i], oppN[(i + 1) % 3]) ans += n * 3 selfN[i] -= n oppN[(i + 1) % 3] -= n # draw for i in range(3): n = min(selfN[i], oppN[i]) ans += n selfN[i] -= n oppN[i] -= n print ans if __name__ == "__main__": work(read())