#include <bits/stdc++.h>
using namespace std;
void reset(int& n, int first) { n = n & ~(1 << first); }
bool check(int n, int first) { return (bool)(n & (1 << first)); }
set<int> ax, ay;
multiset<int> bx, by;
set<int>::iterator l, r;
int main() {
  int i, j, k, n, w, h;
  while (scanf("%d%d%d", &w, &h, &n) == 3) {
    ax.clear();
    ay.clear();
    bx.clear();
    by.clear();
    ax.insert(0);
    ax.insert(h);
    ay.insert(0);
    ay.insert(w);
    bx.insert(h);
    by.insert(w);
    for (i = 0; i < n; i++) {
      char ch;
      int v;
      scanf("%c%c%d", &ch, &ch, &v);
      if (ch == 'H') {
        r = ax.lower_bound(v);
        l = --r;
        r++;
        bx.erase(bx.find(*r - *l));
        ax.insert(v);
        bx.insert(v - *l);
        bx.insert(*r - v);
      } else {
        r = ay.lower_bound(v);
        l = --r;
        r++;
        by.erase(by.find(*r - *l));
        ay.insert(v);
        by.insert(v - *l);
        by.insert(*r - v);
      }
      long long ans = (long long)(*bx.rbegin()) * (*by.rbegin());
      cout << ans << endl;
    }
  }
}
