#include <bits/stdc++.h>
using namespace std;
multiset<int> pos[2];
multiset<int> sums[2];
multiset<int>::iterator it;
long long mval[2];
void solve(int ind, int P) {
  if (pos[ind].find(P) != pos[ind].end()) return;
  pos[ind].insert(P);
  it = pos[ind].find(P);
  --it;
  int D_left = *it;
  ++it;
  ++it;
  int D_right = *it;
  sums[ind].erase(sums[ind].find(D_right - D_left));
  sums[ind].insert(P - D_left);
  sums[ind].insert(D_right - P);
  it = sums[ind].end();
  --it;
  mval[ind] = *it;
}
int main() {
  int n, m, nr_op;
  cin >> n >> m >> nr_op;
  swap(n, m);
  cin.get();
  pos[0].insert(0);
  pos[1].insert(0);
  pos[0].insert(n);
  pos[1].insert(m);
  sums[0].insert(n);
  sums[1].insert(m);
  mval[0] = n;
  mval[1] = m;
  for (; nr_op; --nr_op) {
    char ch;
    int P;
    cin >> ch >> P;
    if (ch == 'H') {
      solve(0, P);
    } else {
      solve(1, P);
    }
    cout << mval[0] * mval[1] << '\n';
  }
  return 0;
}
