#include <bits/stdc++.h>
using namespace std;
int main() {
  int h, v, m;
  cin >> v >> h >> m;
  multiset<int> hcut, vcut;
  multiset<int> hlen, vlen;
  hcut.insert(0);
  hcut.insert(h);
  vcut.insert(v);
  vcut.insert(0);
  hlen.insert(h);
  vlen.insert(v);
  multiset<int>::iterator it, ite, pp;
  for (int i = 0; i < m; i++) {
    char c;
    int cut_len;
    cin >> c >> cut_len;
    if (c == 'H') {
      it = hcut.lower_bound(cut_len);
      ite = it;
      ite--;
      pp = hlen.lower_bound(*it - *ite);
      hlen.erase(pp);
      hlen.insert(*it - cut_len);
      hlen.insert(cut_len - *ite);
      hcut.insert(cut_len);
    } else {
      it = vcut.lower_bound(cut_len);
      ite = it;
      ite--;
      pp = vlen.lower_bound(*it - *ite);
      vlen.erase(pp);
      vlen.insert(*it - cut_len);
      vlen.insert(cut_len - *ite);
      vcut.insert(cut_len);
    }
    long long int tt = *(vlen.rbegin());
    long long int qq = *(hlen.rbegin());
    long long int ans = tt * qq;
    cout << ans << endl;
  }
  return 0;
}
