#include <bits/stdc++.h>
using namespace std;
const long long Maxn = 2e5;
long long n, m, q;
char s[5];
long long a[Maxn + 5];
set<long long> l, r;
multiset<long long> x, y;
signed main() {
  scanf("%d %d %d", &n, &m, &q);
  x.insert(n), y.insert(m);
  l.insert(0), l.insert(n);
  r.insert(0), r.insert(m);
  for (long long i = 1; i <= q; i++) {
    scanf("%s %lld", s, &a[i]);
    set<long long>::iterator it;
    if (s[0] == 'V') {
      l.insert(a[i]);
      it = l.find(a[i]);
      it--;
      long long lx = *it;
      it++, it++;
      long long rx = *it;
      x.erase(x.find(rx - lx));
      x.insert(rx - a[i]);
      x.insert(a[i] - lx);
    } else {
      r.insert(a[i]);
      it = r.find(a[i]);
      it--;
      long long ly = *it;
      it++, it++;
      long long ry = *it;
      y.erase(y.find(ry - ly));
      y.insert(ry - a[i]);
      y.insert(a[i] - ly);
    }
    printf("%lld\n", (*x.rbegin()) * (*y.rbegin()));
  }
  return 0;
}
