#include <bits/stdc++.h>
using namespace std;
int v, h, n;
multiset<int> hor, ver, htam, vtam;
int main() {
  while (scanf("%d %d %d\n", &v, &h, &n) != EOF) {
    char op;
    int pos;
    long long int maxh, maxv;
    hor.clear();
    ver.clear();
    htam.clear();
    vtam.clear();
    htam.insert(h);
    vtam.insert(v);
    hor.insert(0);
    hor.insert(h);
    ver.insert(0);
    ver.insert(v);
    maxh = h;
    maxv = v;
    multiset<int>::iterator it, it2;
    for (int i = 0; i < n; i++) {
      scanf("%c %d\n", &op, &pos);
      if (op == 'H') {
        it = --hor.lower_bound(pos);
        it2 = hor.lower_bound(pos);
        long long int l = *it, r = *it2;
        hor.insert(pos);
        htam.erase(htam.find(r - l));
        htam.insert(pos - l);
        htam.insert(r - pos);
        maxh = *(--htam.end());
      } else {
        it = --ver.lower_bound(pos);
        it2 = ver.lower_bound(pos);
        long long int l = *it, r = *it2;
        ver.insert(pos);
        vtam.erase(vtam.find(r - l));
        vtam.insert(pos - l);
        vtam.insert(r - pos);
        maxv = *(--vtam.end());
      }
      printf("%lld\n", maxh * maxv);
    }
  }
  return 0;
}
