#include <bits/stdc++.h>
using namespace std;
map<long long, long long> largosX, largosY;
set<long long> cortesX, cortesY;
void add(map<long long, long long> &m, long long elem) {
  if (m.count(elem)) {
    m[elem]++;
  } else {
    m[elem] = 1;
  }
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long w, h, n;
  cin >> w >> h >> n;
  largosX[w] = 1;
  largosY[h] = 1;
  cortesX.insert(0);
  cortesX.insert(w);
  cortesY.insert(0);
  cortesY.insert(h);
  char d;
  long long x;
  for (int i = (0); i < (n); i++) {
    cin >> d >> x;
    if (d == 'H') {
      auto hasta_it = cortesY.lower_bound(x);
      long long hasta = *hasta_it;
      long long desde = *(--hasta_it);
      cortesY.insert(x);
      largosY[hasta - desde]--;
      if (largosY.count(hasta - desde) and largosY[hasta - desde] == 0) {
        largosY.erase(hasta - desde);
      }
      add(largosY, x - desde);
      add(largosY, hasta - x);
    } else if (d == 'V') {
      auto hasta_it = cortesX.lower_bound(x);
      long long hasta = *hasta_it;
      long long desde = *(--hasta_it);
      cortesX.insert(x);
      largosX[hasta - desde]--;
      if (largosX.count(hasta - desde) and largosX[hasta - desde] == 0) {
        largosX.erase(hasta - desde);
      }
      add(largosX, x - desde);
      add(largosX, hasta - x);
    }
    cout << (*(--largosX.end())).first * (*(--largosY.end())).first << '\n';
  }
}
