#include <bits/stdc++.h>
using namespace std;
long long fac[2000005] = {0};
void factorial() {
  fac[0] = 1;
  fac[1] = 1;
  for (long long i = 2; i < 200005; i++)
    fac[i] = ((i % 1000000007) * (fac[i - 1] % 1000000007)) % 1000000007;
}
long long power(long long n, long long m) {
  long long p = 1;
  if (m == 0) return 1;
  p = (power(n, m / 2) % 1000000007);
  p = (p % 1000000007 * p % 1000000007) % 1000000007;
  return (m & 1 ? ((p % 1000000007 * n % 1000000007) % 1000000007)
                : (p % 1000000007));
}
long long ncr(long long n, long long r) {
  return ((fac[n] * power(fac[r], 1000000007 - 2)) % 1000000007 *
          power(fac[n - r], 1000000007 - 2)) %
         1000000007;
}
set<long long> a1, a2;
multiset<long long> b1, b2;
long long w, h, n, x;
char ch;
void ram5564() {
  cin >> w >> h >> n;
  a1.insert(0);
  a1.insert(w);
  a2.insert(0);
  a2.insert(h);
  b1.insert(w);
  b2.insert(h);
  while (n--) {
    cin >> ch >> x;
    if (ch == 'H') {
      auto it1 = a2.lower_bound(x);
      auto it2 = --it1;
      ++it1;
      long long num = (*it1) - (*it2);
      b2.erase(b2.find(num));
      a2.insert(x);
      b2.insert(abs(*it1 - x));
      b2.insert(abs(*it2 - x));
    } else {
      auto it1 = a1.lower_bound(x);
      auto it2 = --it1;
      ++it1;
      long long num = (*it1) - (*it2);
      b1.erase(b1.find(num));
      b1.insert(*it1 - x);
      b1.insert(x - *it2);
      a1.insert(x);
    }
    long long num = (*b1.rbegin()) * (*b2.rbegin());
    cout << num << "\n";
  }
}
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  long long t = 1;
  while (t--) ram5564();
  return 0;
}
