#include <bits/stdc++.h>
using namespace std;
set<int> sh, sv;
multiset<int> lh, lv;
int main() {
  int n, m, q;
  cin >> n >> m >> q;
  lh.insert(n);
  lv.insert(m);
  sh.insert(0);
  sh.insert(n);
  sv.insert(0);
  sv.insert(m);
  for (int i = 0; i < q; i++) {
    char c;
    cin >> c;
    int t;
    cin >> t;
    if (c == 'V') {
      sh.insert(t);
      set<int>::iterator it1 = sh.upper_bound(t);
      set<int>::iterator it2 = (--sh.lower_bound(t));
      int x = *it1 - *it2;
      lh.erase(lh.find(x));
      lh.insert(*it1 - t);
      lh.insert(t - *it2);
    } else {
      sv.insert(t);
      set<int>::iterator it1 = sv.upper_bound(t);
      set<int>::iterator it2 = (--sv.lower_bound(t));
      int x = *it1 - *it2;
      lv.erase(lv.find(x));
      lv.insert(*it1 - t);
      lv.insert(t - *it2);
    }
    cout << 1ll * (*lh.rbegin()) * (*lv.rbegin()) << '\n';
  }
  return 0;
}
