#include <bits/stdc++.h>
using namespace std;
multiset<int> s, h;
set<int> s1, s2, h1, h2;
char c[5];
int n, m, q, k;
int main() {
  scanf("%d%d%d", &m, &n, &q);
  s.insert(m), s1.insert(0), s1.insert(m), s2.insert(0), s2.insert(-m);
  h.insert(n), h1.insert(0), h1.insert(n), h2.insert(0), h2.insert(-n);
  while (q--) {
    scanf("%s%d", c, &k);
    int a, b;
    if (c[0] == 'V') {
      b = *s1.lower_bound(k), a = -*s2.lower_bound(-k);
      s1.insert(k), s2.insert(-k);
      s.erase(s.find(b - a));
      s.insert(k - a), s.insert(b - k);
    } else {
      b = *h1.lower_bound(k), a = -*h2.lower_bound(-k);
      h1.insert(k), h2.insert(-k);
      h.erase(h.find(b - a));
      h.insert(k - a), h.insert(b - k);
    }
    cout << (1LL * (*s.rbegin()) * (*h.rbegin())) << endl;
  }
  return 0;
}
