#include <bits/stdc++.h>
using namespace std;
int w, h, n;
set<int> H, W;
multiset<int> Hseg, Wseg;
void divide(set<int> &H, multiset<int> &seg, int pos) {
  set<int>::iterator itl = H.lower_bound(pos);
  set<int>::iterator itr = itl;
  itl--;
  int curlen = (*itr) - (*itl);
  seg.erase(seg.find(curlen));
  seg.insert(pos - (*itl));
  seg.insert((*itr) - pos);
  H.insert(pos);
}
void show() {
  long long ans = (*(--Hseg.end()));
  ans *= (*(--Wseg.end()));
  cout << ans << endl;
}
int main() {
  scanf("%d%d%d\n", &w, &h, &n);
  H.insert(0);
  H.insert(h);
  Hseg.insert(h);
  W.insert(0);
  W.insert(w);
  Wseg.insert(w);
  for (int i = 0; i < n; i++) {
    int pos;
    char c;
    scanf("%c %d\n", &c, &pos);
    if (c == 'H') {
      divide(H, Hseg, pos);
    } else
      divide(W, Wseg, pos);
    show();
  }
  return 0;
}
