#include <bits/stdc++.h>
using namespace std;
int x, y, z, n, k, ans1, ans2;
multiset<int>::iterator p, tv, th;
multiset<int> v, h, vv, hh;
char c;
char Get() {
  char c = getchar();
  while (c != 'H' && c != 'V') c = getchar();
  return c;
}
int main() {
  scanf("%d%d%d", &x, &y, &n);
  v.insert(0);
  v.insert(x);
  h.insert(0);
  h.insert(y);
  vv.insert(x);
  hh.insert(y);
  for (int i = 1; i <= n; ++i) {
    c = Get();
    scanf("%d", &k);
    if (c == 'H') {
      h.insert(k);
      p = h.find(k);
      ++p;
      z = *p;
      --p;
      y = *p;
      --p;
      x = *p;
      hh.erase(hh.find(z - x));
      hh.insert(z - y);
      hh.insert(y - x);
    } else {
      v.insert(k);
      p = v.find(k);
      ++p;
      z = *p;
      --p;
      y = *p;
      --p;
      x = *p;
      vv.erase(vv.find(z - x));
      vv.insert(z - y);
      vv.insert(y - x);
    }
    tv = vv.end();
    --tv;
    th = hh.end();
    --th;
    cout << (long long)(*tv) * (long long)(*th) << endl;
  }
  return 0;
}
