#include <bits/stdc++.h>
using namespace std;
map<int, int> iw, ih;
multiset<int> lw, lh;
int main() {
  int n, w, h, t;
  char s[3];
  scanf("%d%d%d", &w, &h, &n);
  iw[0] = w;
  iw[w] = 0;
  ih[0] = h;
  ih[h] = 0;
  lw.insert(w);
  lh.insert(h);
  for (int i = 0; i < n; ++i) {
    scanf("%s%d", s, &t);
    if (s[0] == 'V') {
      map<int, int>::iterator it = iw.lower_bound(t);
      it--;
      lw.erase(lw.lower_bound((*it).second));
      int d = t - (*it).first;
      lw.insert(d);
      (*it).second = d;
      it++;
      d = (*it).first - t;
      lw.insert(d);
      iw[t] = d;
    } else {
      map<int, int>::iterator it = ih.lower_bound(t);
      it--;
      lh.erase(lh.lower_bound((*it).second));
      int d = t - (*it).first;
      lh.insert(d);
      (*it).second = d;
      it++;
      d = (*it).first - t;
      lh.insert(d);
      ih[t] = d;
    }
    multiset<int>::iterator ith = lh.end(), itw = lw.end();
    ith--;
    itw--;
    printf("%I64d\n", (long long)(*ith) * (*itw));
  }
}
