#include <bits/stdc++.h>
using namespace std;
int n, m;
int dx[] = {-1, 0, 0};
int dy[] = {0, 1, -1};
long long mod(long long a, long long b) { return (a % b + b) % b; }
int main() {
  int k, x, a, b;
  char ch;
  scanf("%d%d%d", &n, &m, &k);
  set<int> h;
  h.insert(0);
  h.insert(m);
  set<int> v;
  v.insert(0);
  v.insert(n);
  set<int>::iterator it = h.begin(), id = v.begin();
  multiset<int> mx, mn;
  mx.insert(m);
  mn.insert(n);
  for (int i = 0; i < k; ++i) {
    scanf(" %c%d", &ch, &x);
    if (ch == 'H') {
      it = h.lower_bound(x);
      --it;
      a = *it;
      it = h.upper_bound(x);
      b = *it;
      mx.erase(mx.find(b - a));
      mx.insert(b - x);
      mx.insert(x - a);
      h.insert(x);
    } else {
      id = v.lower_bound(x);
      --id;
      a = *id;
      id = v.upper_bound(x);
      b = *id;
      mn.erase(mn.find(b - a));
      mn.insert(b - x);
      mn.insert(x - a);
      v.insert(x);
    }
    cout << (long long int)(*--mx.end()) * (long long int)(*--mn.end()) << "\n";
  }
  return 0;
}
