#include <bits/stdc++.h>
using namespace std;
int abc(std::set<int>* mset, std::multiset<int>* mmset, int value) {
  (*mset).insert(value);
  std::set<int>::iterator its = (*mset).find(value);
  int lower = *(--its);
  int upper = *(++ ++its);
  (*mmset).erase((*mmset).find(upper - lower));
  (*mmset).insert(value - lower);
  (*mmset).insert(upper - value);
  return *(--(*mmset).end());
}
int main() {
  int w, h, n, currentMaxW, currentMaxH;
  std::multiset<int> heights;
  std::multiset<int> widths;
  std::multiset<int>::iterator itm;
  std::set<int> arrW;
  std::set<int> arrH;
  cin >> w >> h >> n;
  heights.insert(h);
  widths.insert(w);
  currentMaxH = h;
  currentMaxW = w;
  arrH.insert(0);
  arrH.insert(h);
  arrW.insert(0);
  arrW.insert(w);
  for (int i = 0; i < n; ++i) {
    char c;
    int t;
    cin >> c >> t;
    if (c == 'V') {
      currentMaxW = abc(&arrW, &widths, t);
    } else {
      currentMaxH = abc(&arrH, &heights, t);
    }
    cout << (long long)currentMaxW * currentMaxH << endl;
  }
  return 0;
}
