#include <bits/stdc++.h>
using namespace std;
const int OO = 0x3f3f3f3f, N = 1e6 + 5, mod = 1e9 + 7;
const double pi = acos(-1), EPS = 1e-8;
int w, h, n, d[N], mx_h, mx_v, prv = -1;
long long ans[N];
char x[N];
set<int> herzontal, vertical;
int main() {
  cin >> h >> w >> n;
  herzontal.insert(0);
  herzontal.insert(w);
  vertical.insert(0);
  vertical.insert(h);
  for (int i = 1; i <= n; ++i) {
    cin >> x[i] >> d[i];
    if (x[i] == 'H')
      herzontal.insert(d[i]);
    else
      vertical.insert(d[i]);
  }
  for (int go : herzontal) {
    if (prv != -1) mx_h = max(mx_h, go - prv);
    prv = go;
  }
  prv = -1;
  for (int go : vertical) {
    if (prv != -1) mx_v = max(mx_v, go - prv);
    prv = go;
  }
  for (int i = n; i >= 1; --i) {
    ans[i] = 1ll * mx_v * mx_h;
    if (x[i] == 'H') {
      if (d[i] != w) herzontal.erase(d[i]);
      set<int>::iterator it = herzontal.upper_bound(d[i]);
      int a = *it;
      --it;
      mx_h = max(mx_h, a - *it);
    } else {
      if (d[i] != h) vertical.erase(d[i]);
      set<int>::iterator it = vertical.upper_bound(d[i]);
      int a = *it;
      --it;
      mx_v = max(mx_v, a - *it);
    }
  }
  for (int i = 1; i <= n; ++i) printf("%lld\n", ans[i]);
  return 0;
}
