#include <bits/stdc++.h>
using namespace std;
int w, h, n;
set<int> a1, a2;
multiset<int> b1, b2;
set<int>::iterator it1, it2;
long long ans;
char ch, type;
inline int read() {
  while (ch = getchar(), ch < '0' || ch > '9')
    ;
  int res = ch - 48;
  while (ch = getchar(), ch >= '0' && ch <= '9') res = res * 10 + ch - 48;
  return res;
}
int main() {
  scanf("%d%d%d", &w, &h, &n);
  a1.insert(0);
  a1.insert(w);
  a2.insert(0);
  a2.insert(h);
  b1.insert(w);
  b2.insert(h);
  for (int i = 1; i <= n; ++i) {
    while (type = getchar(), type != 'H' && type != 'V')
      ;
    int t = read();
    if (type == 'H') {
      it1 = a2.lower_bound(t);
      it2 = --it1;
      ++it1;
      int num = *it1 - *it2;
      b2.erase(b2.find(num));
      a2.insert(t);
      b2.insert(t - *it2);
      b2.insert(*it1 - t);
    } else {
      it1 = a1.lower_bound(t);
      it2 = --it1;
      ++it1;
      int num = *it1 - *it2;
      b1.erase(b1.find(num));
      a1.insert(t);
      b1.insert(t - *it2);
      b1.insert(*it1 - t);
    }
    ans = (long long)(*b1.rbegin()) * (*b2.rbegin());
    printf("%lld\n", ans);
  }
  return 0;
}
