#include <bits/stdc++.h>
using namespace std;
inline void read(int &X);
inline void print(int X);
const int Maxn = 3E5 + 5;
int A, B, C;
int N, N1, N2;
int p1[Maxn], p2[Maxn];
int n1, n2, n3;
int num;
long long ans;
int main() {
  scanf("%d %d %d", &A, &B, &C);
  scanf("%d", &N);
  int X;
  char c[15];
  for (register int i = (1); i <= (N); i++) {
    scanf("%d %s", &X, c + 1);
    if (c[1] == 'U')
      p1[++N1] = X;
    else
      p2[++N2] = X;
  }
  sort(p1 + 1, p1 + N1 + 1), sort(p2 + 1, p2 + N2 + 1);
  for (n1 = 1; n1 <= min(A, N1); n1++) num++, ans += p1[n1];
  for (n2 = 1; n2 <= min(B, N2); n2++) num++, ans += p2[n2];
  for (n3 = 1; n3 <= C && (n1 <= N1 || n2 <= N2); n3++) {
    num++;
    if (n1 > N1) {
      ans += p2[n2++];
      continue;
    }
    if (n2 > N2) {
      ans += p1[n1++];
      continue;
    }
    if (p1[n1] < p2[n2])
      ans += p1[n1++];
    else
      ans += p2[n2++];
  }
  printf("%d %I64d", num, ans);
  return 0;
}
inline void read(int &X) {
  char c;
  bool flag;
  for (c = getchar(); (c < '0' || c > '9') && (c != '-'); c = getchar())
    ;
  if (c == '-')
    X = 0, flag = false;
  else
    X = c ^ 48, flag = true;
  for (c = getchar(); c >= '0' && c <= '9';
       X = X * 10 + (c ^ 48), c = getchar())
    ;
  if (!flag) X = -X;
}
inline void print(int X) {
  if (X >= 10) print(X / 10);
  putchar('0' + (X % 10));
}
