#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;
const long long LL_INF = 0x3f3f3f3f3f3f3f3f;
const int mod = 1000 * 1000 * 1000 + 7;
int n, z;
long long w, h, high;
char cut;
set<pair<int, int>> widR, heiR;
set<pair<long long, pair<int, int>>> wid, hei;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cin >> w >> h >> n;
  widR.insert({0, w});
  heiR.insert({0, h});
  wid.insert({w - 0, {0, w}});
  hei.insert({h - 0, {0, h}});
  while (n--) {
    cin >> cut >> z;
    if (cut == 'H') {
      auto itr = heiR.lower_bound({z, 0});
      if (itr == heiR.end() || itr->first > z) --itr;
      int l = itr->first, r = itr->second;
      heiR.erase(itr);
      hei.erase(hei.find({r - l, {l, r}}));
      heiR.insert({l, z});
      heiR.insert({z, r});
      hei.insert({z - l, {l, z}});
      hei.insert({r - z, {z, r}});
    } else {
      auto itr = widR.lower_bound({z, 0});
      if (itr == widR.end() || itr->first > z) --itr;
      int l = itr->first, r = itr->second;
      widR.erase(itr);
      wid.erase(wid.find({r - l, {l, r}}));
      widR.insert({l, z});
      widR.insert({z, r});
      wid.insert({z - l, {l, z}});
      wid.insert({r - z, {z, r}});
    }
    long long ans = wid.rbegin()->first * hei.rbegin()->first;
    cout << ans << "\n";
  }
  return 0;
}
