#include <bits/stdc++.h>
using namespace std;
string s;
int a[10000], b[10000];
int w, h, n;
int w1, w2, h1, h2;
void cut(set<pair<int, int> >& s, set<pair<int, int> >& nima, int d) {
  set<pair<int, int> >::iterator iter = s.lower_bound(make_pair(d, 0));
  --iter;
  int pre = iter->first;
  int ft = iter->second;
  nima.erase(nima.find(make_pair(ft, pre)));
  s.erase(iter);
  s.insert(make_pair(pre, d - pre));
  s.insert(make_pair(d, ft + pre - d));
  nima.insert(make_pair(d - pre, pre));
  nima.insert(make_pair(ft + pre - d, d));
}
set<pair<int, int> > s1, s2, k1, k2;
int main() {
  while (scanf("%d%d%d", &w, &h, &n) > 0) {
    s2.insert(make_pair(0, w));
    s1.insert(make_pair(0, h));
    k2.insert(make_pair(w, 0));
    k1.insert(make_pair(h, 0));
    for (int i = 0; i < n; ++i) {
      char c;
      int d;
      cin >> c >> d;
      if (c == 'H') {
        cut(s1, k1, d);
      } else {
        cut(s2, k2, d);
      }
      set<pair<int, int> >::iterator iter1 = k1.end(), iter2 = k2.end();
      --iter1;
      --iter2;
      cout << (long long)iter1->first * (long long)iter2->first << endl;
    }
  }
}
