#include <bits/stdc++.h>
using namespace std;
const double PI = 3.14159265359;
const double EPS = 1e-6;
const long long INF = ((long long)1 << 62);
const long long P = 1e9 + 7;
int main() {
  std::ios::sync_with_stdio(false);
  long long w, h, n;
  cin >> w >> h >> n;
  set<pair<long long, long long> > X;
  set<pair<long long, long long> > Y;
  X.insert(make_pair(0, w));
  Y.insert(make_pair(0, h));
  char op;
  long long pos;
  multiset<long long> X_lens;
  multiset<long long> Y_lens;
  X_lens.insert(w);
  Y_lens.insert(h);
  set<pair<long long, long long> >::iterator it;
  pair<long long, long long> seg;
  for (int i = 0; i < n; i++) {
    cin >> op >> pos;
    if (op == 'V') {
      if (X.size() == 1) {
        it = X.begin();
      } else {
        it = X.upper_bound(make_pair(pos, INF));
        it--;
      }
      seg = *it;
      X.insert(make_pair(seg.first, pos));
      X.insert(make_pair(pos, seg.second));
      X_lens.insert(pos - seg.first);
      X_lens.insert(seg.second - pos);
      X.erase(it);
      X_lens.erase(X_lens.find(seg.second - seg.first));
    } else {
      if (Y.size() == 1) {
        it = Y.begin();
      } else {
        it = Y.upper_bound(make_pair(pos, INF));
        it--;
      }
      seg = *it;
      Y.insert(make_pair(seg.first, pos));
      Y.insert(make_pair(pos, seg.second));
      Y_lens.insert(pos - seg.first);
      Y_lens.insert(seg.second - pos);
      Y.erase(it);
      Y_lens.erase(Y_lens.find(seg.second - seg.first));
    }
    cout << (*X_lens.rbegin()) * (*Y_lens.rbegin()) << "\n";
  }
  return 0;
}
