#include <bits/stdc++.h>
using namespace std;
set<long long> cutH, cutW;
multiset<long long> cutMH, cutMW;
void solve() {
  cutH.clear(), cutW.clear();
  cutMH.clear(), cutMW.clear();
  long long H, W, K;
  cin >> W >> H >> K;
  cutH.insert(0), cutH.insert(H);
  cutW.insert(0), cutW.insert(W);
  cutMH.insert(H - 0);
  cutMW.insert(W - 0);
  char cmd;
  long long x;
  for (int i = 0; i < K; i++) {
    cin >> cmd >> x;
    if (cmd == 'H') {
      long long st = 0, end = H;
      set<long long>::iterator it;
      it = cutH.lower_bound(x);
      --it;
      st = *it;
      it++;
      if (it != cutH.end()) end = (*it);
      cutMH.erase(cutMH.find(end - st));
      cutMH.insert(x - st);
      cutMH.insert(end - x);
      long long mht = (*(--cutMH.end()));
      long long mwt = (*(--cutMW.end()));
      cout << mht * mwt << endl;
      cutH.insert(x);
    } else {
      long long st = 0, end = W;
      set<long long>::iterator it;
      it = cutW.lower_bound(x);
      --it;
      st = *it;
      it++;
      if (it != cutW.end()) end = (*it);
      cutMW.erase(cutMW.find(end - st));
      cutMW.insert(x - st);
      cutMW.insert(end - x);
      long long mht = (*(--cutMH.end()));
      long long mwt = (*(--cutMW.end()));
      cout << mht * mwt << endl;
      cutW.insert(x);
    }
  }
  return;
}
int main() {
  solve();
  return 0;
}
