#include <bits/stdc++.h>
using namespace std;
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  ;
  int w, h, n;
  cin >> w >> h >> n;
  set<int> seth, setw;
  map<int, int> mph, mpw;
  map<int, int>::iterator mphit, mpwit;
  set<int>::iterator setit;
  seth.insert(0), seth.insert(h);
  setw.insert(0), setw.insert(w);
  mph[h]++;
  mpw[w]++;
  int maxh = h, maxw = w;
  for (int(i) = (0); (i) < (n); ++(i)) {
    char c;
    int cut;
    cin >> c >> cut;
    if (c == 'H') {
      seth.insert(cut);
      setit = seth.find(cut);
      int a, b;
      setit--;
      a = *(setit);
      setit++, setit++;
      b = *(setit);
      mph[b - a]--;
      mph[cut - a]++;
      mph[b - cut]++;
      if (mph[b - a] == 0) mph.erase(mph.find(b - a));
    } else {
      setw.insert(cut);
      setit = setw.find(cut);
      int a, b;
      setit--;
      a = *(setit);
      setit++, setit++;
      b = *(setit);
      mpw[b - a]--;
      mpw[cut - a]++;
      mpw[b - cut]++;
      if (mpw[b - a] == 0) mpw.erase(mpw.find(b - a));
    }
    mphit = mph.end();
    mpwit = mpw.end();
    mphit--, mpwit--;
    long long ans = (long long)(mphit->first) * (long long)(mpwit->first);
    cout << ans << endl;
  }
  return 0;
}
