#include <bits/stdc++.h>
using namespace std;
const int maxn = 200005;
set<int> posx, lenx, posy, leny;
int w, h, n, x, l, r, a, b, cntx[maxn], cnty[maxn];
int main() {
  char ch;
  long long ans;
  scanf("%d%d%d", &w, &h, &n);
  posx.insert(0);
  posx.insert(w);
  posy.insert(0);
  posy.insert(h);
  lenx.insert(w);
  cntx[w] = 1;
  leny.insert(h);
  cnty[h] = 1;
  set<int>::iterator it;
  while (n--) {
    getchar();
    scanf("%c%d", &ch, &x);
    if (ch == 'V') {
      it = posx.lower_bound(x);
      r = *it;
      it--;
      l = *it;
      it = lenx.lower_bound(r - l);
      lenx.erase(*it);
      cntx[r - l]--;
      if (cntx[r - l]) lenx.insert(r - l);
      lenx.insert(x - l);
      lenx.insert(r - x);
      cntx[x - l]++;
      cntx[r - x]++;
      posx.insert(x);
      it = lenx.end();
      it--;
      a = *it;
      it = leny.end();
      it--;
      b = *it;
      ans = 1LL * a * b;
    } else {
      it = posy.lower_bound(x);
      r = *it;
      it--;
      l = *it;
      it = leny.lower_bound(r - l);
      leny.erase(*it);
      cnty[r - l]--;
      if (cnty[r - l]) leny.insert(r - l);
      leny.insert(x - l);
      leny.insert(r - x);
      cnty[x - l]++;
      cnty[r - x]++;
      posy.insert(x);
      it = leny.end();
      it--;
      a = *it;
      it = lenx.end();
      it--;
      b = *it;
      ans = 1LL * a * b;
    }
    printf("%I64d\n", ans);
  }
  return 0;
}
