#include <bits/stdc++.h>
using namespace std;
long long w, h, n;
set<pair<long long, long long>> sh, sw;
multiset<long long> shs, sws;
int main() {
  cin >> w >> h >> n;
  sh.insert(make_pair(h, 0));
  sw.insert(make_pair(w, 0));
  sws.insert(w);
  shs.insert(h);
  long long maxw = w;
  long long maxh = h;
  for (long long i = 0; i < n; i++) {
    char x;
    long long s;
    cin >> x >> s;
    set<pair<long long, long long>>::iterator it;
    if (x == 'H') {
      it = sh.lower_bound(make_pair(s, -1));
      pair<long long, long long> a = *it;
      pair<long long, long long> b1 = make_pair(a.first, s);
      pair<long long, long long> b2 = make_pair(s, a.second);
      sh.erase(it);
      sh.insert(b1);
      sh.insert(b2);
      shs.erase(shs.find(a.first - a.second));
      shs.insert(b1.first - b1.second);
      shs.insert(b2.first - b2.second);
      maxh = (*--shs.upper_bound(1000000271LL));
    } else {
      it = sw.lower_bound(make_pair(s, -1));
      pair<long long, long long> a = *it;
      pair<long long, long long> b1 = make_pair(a.first, s);
      pair<long long, long long> b2 = make_pair(s, a.second);
      sw.erase(it);
      sw.insert(b1);
      sw.insert(b2);
      sws.erase(sws.find(a.first - a.second));
      sws.insert(b1.first - b1.second);
      sws.insert(b2.first - b2.second);
      maxw = (*--sws.upper_bound(1000000271LL));
    }
    cout << maxw * maxh << endl;
  }
  return 0;
}
