#include <bits/stdc++.h>
using namespace std;
set<unsigned long long> x, y;
multiset<unsigned long long> dx, dy;
void add(unsigned long long v, set<unsigned long long>& a,
         multiset<unsigned long long>& b) {
  set<unsigned long long>::iterator jt = a.lower_bound(v), it = jt;
  --it;
  unsigned long long db = v - *it, de = *jt - v, d = *jt - *it;
  a.insert(it, v);
  b.erase(b.find(d));
  b.insert(db);
  b.insert(de);
}
int main(int argc, char* argv[]) {
  unsigned long long w, h, n;
  cin >> w >> h >> n;
  x.insert(0);
  x.insert(w);
  y.insert(0);
  y.insert(h);
  dx.insert(w);
  dy.insert(h);
  for (unsigned long long i = 0; i < n; ++i) {
    char c;
    unsigned long long co;
    cin >> c >> co;
    if (c == 'V')
      add(co, x, dx);
    else
      add(co, y, dy);
    cout << *dx.rbegin() * (*dy.rbegin()) << endl;
  }
  return 0;
}
