#include <bits/stdc++.h>
using std::max;
using std::min;
inline int F() {
  register int aa, bb, ch;
  while (ch = getchar(), (ch < '0' || ch > '9') && ch != '-')
    ;
  ch == '-' ? aa = bb = 0 : (aa = ch - '0', bb = 1);
  while (ch = getchar(), ch >= '0' && ch <= '9') aa = aa * 10 + ch - '0';
  return bb ? aa : -aa;
}
inline long long Fll() {
  register long long aa;
  int bb, ch;
  while (ch = getchar(), (ch < '0' || ch > '9') && ch != '-')
    ;
  ch == '-' ? aa = bb = 0 : (aa = ch - '0', bb = 1);
  while (ch = getchar(), ch >= '0' && ch <= '9') aa = aa * 10 + ch - '0';
  return bb ? aa : -aa;
}
const int Maxn = 300010;
int a[Maxn], b[Maxn], c[Maxn], acnt = 0, bcnt = 0, ccnt;
long long cost = 0;
char s[10];
int main() {
  int n = F(), m = F(), k = F();
  int q = F();
  for (int i = 1; i <= q; ++i) {
    int val = F();
    scanf("%s", s + 1);
    if (s[1] == 'U')
      a[++acnt] = val;
    else
      b[++bcnt] = val;
  }
  std::sort(a + 1, a + acnt + 1);
  std::sort(b + 1, b + bcnt + 1);
  int lima = min(acnt, n);
  for (int i = 1; i <= lima; ++i) cost += a[i];
  int limb = min(bcnt, m);
  for (int i = 1; i <= limb; ++i) cost += b[i];
  for (int i = lima + 1; i <= acnt; ++i) c[++ccnt] = a[i];
  for (int i = limb + 1; i <= bcnt; ++i) c[++ccnt] = b[i];
  std::sort(c + 1, c + ccnt + 1);
  int limc = min(ccnt, k);
  for (int i = 1; i <= limc; ++i) cost += c[i];
  printf("%d %I64d\n", lima + limb + limc, cost);
}
