#include <bits/stdc++.h>
using namespace std;
multiset<int> mx[2];
set<int> pos[2];
void insert(int x, int b) {
  set<int>::iterator it, it1;
  it = pos[b].lower_bound(x);
  it1 = it;
  it--;
  mx[b].erase(mx[b].find(*it1 - *it));
  mx[b].insert(x - *it);
  mx[b].insert(*it1 - x);
  pos[b].insert(x);
}
int N, M, Q;
long long query() { return 1LL * (*--mx[0].end()) * (*--mx[1].end()); }
int main() {
  ios::sync_with_stdio(0);
  cin >> N >> M >> Q;
  mx[0].insert(M);
  mx[1].insert(N);
  pos[0].insert(0);
  pos[0].insert(M);
  pos[1].insert(0);
  pos[1].insert(N);
  int x;
  char c;
  while (Q--) {
    cin >> c >> x;
    insert(x, c == 'V');
    cout << query() << "\n";
  }
  return 0;
}
