#include <bits/stdc++.h>
int const N = 200005;
int const M = 205;
int const inf = 1000000000;
long long const mod = 1000000007;
using namespace std;
long long w, h, n;
set<long long> x;
set<long long> y;
multiset<long long> xp;
multiset<long long> yp;
long long xmax, ymax;
void out();
void ini() {
  x.clear();
  y.clear();
  xp.clear();
  yp.clear();
  x.insert(0);
  x.insert(w);
  y.insert(0);
  y.insert(h);
  xp.insert(w);
  yp.insert(h);
  xmax = w;
  ymax = h;
}
void solve() {
  long long i;
  char s[2];
  long long v;
  long long r, l;
  long long le;
  set<long long>::iterator it;
  set<long long>::iterator it1;
  set<long long>::iterator it2;
  multiset<long long>::iterator it3;
  for (i = 1; i <= n; i++) {
    scanf("%s%I64d", s, &v);
    if (s[0] == 'V') {
      x.insert(v);
      it = x.find(v);
      it1 = it2 = it;
      it1--;
      it2++;
      l = *it1;
      r = *it2;
      le = r - l;
      xp.erase(xp.find(le));
      xp.insert(v - l);
      xp.insert(r - v);
      it3 = xp.end();
      it3--;
      xmax = *it3;
    } else {
      y.insert(v);
      it = y.find(v);
      it1 = it2 = it;
      it1--;
      it2++;
      l = *it1;
      r = *it2;
      le = r - l;
      yp.erase(yp.find(le));
      yp.insert(v - l);
      yp.insert(r - v);
      it3 = yp.end();
      it3--;
      ymax = *it3;
    }
    out();
  }
}
void out() { printf("%I64d\n", xmax * ymax); }
int main() {
  while (scanf("%I64d%I64d%I64d", &w, &h, &n) != EOF) {
    ini();
    solve();
  }
}
