#include <bits/stdc++.h>
using namespace std;
int n, m, Q;
set<int> cut[2];
map<int, int> mx[2];
long long getmx() {
  map<int, int>::iterator it;
  it = mx[0].end();
  it--;
  int u = (*it).first;
  it = mx[1].end();
  it--;
  int v = (*it).first;
  return 1ll * u * v;
}
void Insert(int t, int x) {
  int u, v;
  set<int>::iterator it = cut[t].lower_bound(x);
  v = *it;
  it--;
  u = *it;
  mx[t][v - u]--;
  if (mx[t][v - u] == 0) mx[t].erase(v - u);
  cut[t].insert(x);
  mx[t][x - u]++;
  mx[t][v - x]++;
}
int main() {
  char t;
  int x;
  scanf("%d %d %d", &n, &m, &Q);
  cut[0].insert(0);
  cut[0].insert(n);
  mx[0][n]++;
  cut[1].insert(0);
  cut[1].insert(m);
  mx[1][m]++;
  for (int i = 1; i <= Q; i++) {
    scanf(" %c %d", &t, &x);
    if (t == 'V') Insert(0, x);
    if (t == 'H') Insert(1, x);
    printf("%I64d\n", getmx());
  }
  return 0;
}
