#include <bits/stdc++.h>
using namespace std;
template <typename T>
void read(T& x) {
  x = 0;
  int fl = 1;
  char ch = getchar();
  while (ch < '0' || ch > '9') {
    if (ch == '-') fl = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    x = (x << 1) + (x << 3) + ch - '0';
    ch = getchar();
  }
  x *= fl;
}
template <typename T, typename... Args>
inline void read(T& t, Args&... args) {
  read(t);
  read(args...);
}
const int N = 200005;
int w, h, n;
set<int> px, py;
multiset<int> sx, sy;
int main() {
  read(w, h, n);
  px.insert(0), px.insert(w), py.insert(0), py.insert(h);
  sx.insert(w), sy.insert(h);
  while (n--) {
    char opt[1];
    int p;
    scanf("%s%d", opt, &p);
    if (opt[0] == 'H') {
      auto pre = py.lower_bound(p);
      auto suc = pre;
      pre--;
      sy.insert(p - *pre), sy.insert(*suc - p), sy.erase(sy.find(*suc - *pre));
      py.insert(p);
    } else {
      auto pre = px.lower_bound(p);
      auto suc = pre;
      pre--;
      sx.insert(p - *pre), sx.insert(*suc - p), sx.erase(sx.find(*suc - *pre));
      px.insert(p);
    }
    printf("%lld\n", 1ll * *sx.rbegin() * *sy.rbegin());
  }
  return 0;
}
