#include <bits/stdc++.h>
using namespace std;
const int INF = 1000000000;
const int MOD = 1000000007;
const long long INFll = 1000000000000000000ll;
const long double EPS = 1e-8;
const int MAXN = 1000000;
int x[200200], y[200200];
int main() {
  int n, m, k;
  scanf("%d%d%d\n", &n, &m, &k);
  set<int> h, v;
  h.insert(0);
  h.insert(m);
  v.insert(0);
  v.insert(n);
  priority_queue<int> qx, qy;
  qx.push(n);
  qy.push(m);
  x[n] = 1, y[m] = 1;
  while (k--) {
    char c;
    int p;
    scanf("%c%d\n", &c, &p);
    if (c == 'H') {
      set<int>::iterator it = h.upper_bound(p);
      int r = (*it) - p;
      --it;
      int l = p - (*it);
      h.insert(p);
      --y[l + r];
      ++y[l], ++y[r];
      qy.push(l);
      qy.push(r);
      while (!y[qy.top()]) qy.pop();
    } else {
      set<int>::iterator it = v.upper_bound(p);
      int r = (*it) - p;
      --it;
      int l = p - (*it);
      v.insert(p);
      --x[l + r];
      ++x[l], ++x[r];
      qx.push(l);
      qx.push(r);
      while (!x[qx.top()]) qx.pop();
    }
    printf("%I64d\n", 1ll * qx.top() * qy.top());
  }
  return 0;
}
