#include <bits/stdc++.h>
using namespace std;
void resta_un(map<int, int>& M, int dif) {
  map<int, int>::iterator it;
  it = M.find(dif);
  if (it->second == 1)
    M.erase(it);
  else
    it->second--;
}
void suma_un(map<int, int>& M, int dif) {
  map<int, int>::iterator it;
  it = M.find(dif);
  if (it == M.end())
    M[dif] = 1;
  else
    it->second++;
}
int main() {
  int w, h, n;
  cin >> w >> h >> n;
  set<int> W, H;
  map<int, int> MW, MH;
  W.insert(0);
  W.insert(w);
  H.insert(0);
  H.insert(h);
  MW[w] = 1;
  MH[h] = 1;
  for (int i = 0; i < n; ++i) {
    char c;
    int m;
    set<int>::iterator sit;
    map<int, int>::iterator mit;
    cin >> c >> m;
    if (c == 'V') {
      sit = (W.insert(m)).first;
      sit--;
      int ant = *sit;
      sit++;
      sit++;
      int seg = *sit;
      resta_un(MW, seg - ant);
      suma_un(MW, seg - m);
      suma_un(MW, m - ant);
    } else {
      sit = (H.insert(m)).first;
      sit--;
      int ant = *sit;
      sit++;
      sit++;
      int seg = *sit;
      resta_un(MH, seg - ant);
      suma_un(MH, seg - m);
      suma_un(MH, m - ant);
    }
    int amplada = (--MW.end())->first;
    int altura = (--MH.end())->first;
    cout << (long long)amplada * (long long)altura << endl;
  }
}
