#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, T;
  while (~scanf("%d%d%d", &w, &h, &n)) {
    memset(vx, 0, sizeof(vx));
    memset(vy, 0, sizeof(vy));
    char c;
    x.clear(), y.clear();
    mx.clear(), my.clear();
    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;
}
