#include<bits/stdc++.h>
#define N 100010
using namespace std;
struct Node
{
int val,kind;
bool operator <(const Node &x)const{return val<x.val;}
}s[5*N];
int a,b,c,n;
int main()
{
scanf("%d%d%d",&a,&b,&c);scanf("%d",&n);
for(int i=1;i<=n;i++)
{
int q;
char ss[20];scanf("%d%s",&s[i].val,ss);//puts(ss);
if(ss[0]=='A')s[i].kind=1;else s[i].kind=2;
}
sort(s+1,s+n+1);long long ans=0,tot=0;
for(int i=1;i<=n;i++)
{
int kind=s[i].kind;bool cc=true;
if(kind==1&&a)ans+=s[i].val,a--,cc=false,tot++;
if(kind==2&&b)ans+=s[i].val,b--,cc=false,tot++;
if(c&&cc)ans+=s[i].val,c--,tot++;
}
cout<<tot<<" "<<ans<<endl;
return 0;
}
#define N 100010
using namespace std;
struct Node
{
int val,kind;
bool operator <(const Node &x)const{return val<x.val;}
}s[5*N];
int a,b,c,n;
int main()
{
scanf("%d%d%d",&a,&b,&c);scanf("%d",&n);
for(int i=1;i<=n;i++)
{
int q;
char ss[20];scanf("%d%s",&s[i].val,ss);//puts(ss);
if(ss[0]=='A')s[i].kind=1;else s[i].kind=2;
}
sort(s+1,s+n+1);long long ans=0,tot=0;
for(int i=1;i<=n;i++)
{
int kind=s[i].kind;bool cc=true;
if(kind==1&&a)ans+=s[i].val,a--,cc=false,tot++;
if(kind==2&&b)ans+=s[i].val,b--,cc=false,tot++;
if(c&&cc)ans+=s[i].val,c--,tot++;
}
cout<<tot<<" "<<ans<<endl;
return 0;
}