#!/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())