#include <bits/stdc++.h>
using namespace std;
set<int> x, y;
int vx[200006], vy[200006];
set<int> mx, my;
set<int>::iterator it1, it2;
void gao(set<int> &t1, set<int> &t2, int *v, int x) {
  if (!t1.count(x)) {
    it1 = t1.lower_bound(x);
    it2 = it1, it1--;
    int l = *it2 - *it1;
    v[l]--;
    if (v[l] == 0) t2.erase(l);
    t2.insert(*it2 - x), v[*it2 - x]++;
    t2.insert(x - *it1), v[x - *it1]++;
    t1.insert(x);
  }
}
int main() {
  int w, h, n, t;
  std::ios_base::sync_with_stdio(false);
  memset(vx, 0, sizeof(vx));
  memset(vy, 0, sizeof(vy));
  char c;
  cin >> w >> h >> n;
  x.insert(w), y.insert(h);
  x.insert(0), y.insert(0);
  mx.insert(w), my.insert(h);
  vx[w]++, vy[h]++;
  while (n--) {
    cin >> c >> t;
    if (c == 'V') {
      gao(x, mx, vx, t);
    } else {
      gao(y, my, vy, t);
    }
    it1 = mx.end(), it2 = my.end();
    it1--, it2--;
    long long x1 = (*it1) * 1ll, x2 = (*it2) * 1ll;
    long long ans = x1 * x2;
    cout << ans << endl;
  }
  return 0;
}
