#include <bits/stdc++.h>
using namespace std;
multiset<int>::iterator it;
multiset<int> hh;
multiset<int> ww;
multiset<int> hidx;
multiset<int> widx;
int main(void) {
  long long w, h, n;
  scanf("%lld %lld %lld\n", &w, &h, &n);
  hidx.insert(0);
  hidx.insert(h);
  widx.insert(0);
  widx.insert(w);
  hh.insert(h);
  ww.insert(w);
  for (int i = 1; i <= n; i++) {
    char c;
    long long x;
    scanf("%c %lld", &c, &x);
    getchar();
    if (c == 'V') {
      if (widx.find(x) == widx.end()) {
        it = widx.lower_bound(x);
        it--;
        long long l = *it;
        it = widx.upper_bound(x);
        long long h = *it;
        widx.insert(x);
        it = ww.lower_bound(h - l);
        ww.erase(it);
        ww.insert(h - x);
        ww.insert(x - l);
      }
    } else {
      if (hidx.find(x) == hidx.end()) {
        it = hidx.lower_bound(x);
        it--;
        long long l = *it;
        it = hidx.upper_bound(x);
        long long h = *it;
        hidx.insert(x);
        it = hh.lower_bound(h - l);
        hh.erase(it);
        hh.insert(h - x);
        hh.insert(x - l);
      }
    }
    long long ans;
    long long val1, val2;
    it = hh.end();
    it--;
    val1 = *it;
    it = ww.end();
    it--;
    val2 = *it;
    ans = val1 * val2;
    printf("%I64d\n", ans);
  }
  return 0;
}
