#include <bits/stdc++.h>
using LL = long long;
int w, h, n;
void modify(std::set<std::pair<int, int>> &setx, std::multiset<int> &dx,
            int p) {
  std::set<std::pair<int, int>>::iterator it = --setx.upper_bound({p, -1});
  int a = it->first;
  int b = it->second;
  dx.erase(dx.find(b - a));
  dx.insert(p - a);
  dx.insert(b - p);
  setx.erase(it);
  setx.insert({a, p});
  setx.insert({p, b});
}
int main() {
  scanf("%d%d%d", &w, &h, &n);
  std::set<std::pair<int, int>> setx, sety;
  std::multiset<int> dx, dy;
  dx.insert(w);
  dy.insert(h);
  setx.insert({0, w});
  sety.insert({0, h});
  for (int i = 0; i < n; ++i) {
    char op[2];
    int p;
    scanf("%s%d", op, &p);
    if (op[0] == 'H') {
      modify(sety, dy, p);
    } else {
      modify(setx, dx, p);
    }
    LL answer = 0;
    answer = *--dx.end();
    answer *= *--dy.end();
    printf("%I64d\n", answer);
  }
}
