N,X,Y=map(int,input().split()) client=[] for i in range(N): P,c=input().split() P=int(P) client.append((P,c)) af=[] bf=[] a=0 b=0 ans=0 for i in range(X+Y): cnt=[0,0] for j in range(i,N,X+Y): P,c=client[j] if c=="A": cnt[0]+=P else: cnt[1]+=P if max(cnt[0],cnt[1])==0: continue if cnt[0]>=cnt[1]: a+=1 ans+=cnt[0] af.append(abs(cnt[0]-cnt[1])) else: b+=1 ans+=cnt[1] bf.append(abs(cnt[0]-cnt[1])) af.sort(reverse=True) bf.sort(reverse=True) while len(af)>X: ans-=af.pop() while len(bf)>Y: ans-=bf.pop() print(ans)