#include <bits/stdc++.h>
using namespace std;
int w, h, n;
char ar[2];
int v;
set<int> se[2];
multiset<int> mse[2];
set<int>::iterator it, l, r;
multiset<int>::iterator temp;
long long f(int tp) {
  se[tp].insert(v);
  it = se[tp].find(v);
  l = it;
  l--;
  r = it;
  r++;
  mse[tp].erase(mse[tp].find(*r - *l));
  mse[tp].insert(v - *l);
  mse[tp].insert(*r - v);
  long long ans = 1;
  temp = mse[tp].end();
  temp--;
  ans *= *temp;
  temp = mse[!tp].end();
  temp--;
  ans *= *temp;
  return ans;
}
int main() {
  scanf("%d %d %d", &w, &h, &n);
  se[0].insert(0);
  se[0].insert(w);
  se[1].insert(0);
  se[1].insert(h);
  mse[0].insert(w);
  mse[1].insert(h);
  while (n--) {
    scanf("%s%d", ar, &v);
    printf("%lld\n", f(ar[0] == 'H'));
  }
  return 0;
}
