#include <bits/stdc++.h>
using namespace std;
const int inf = 1e9;
const int N = 100010;
const int MOD = 1e9 + 7;
int w, h, n;
set<pair<int, int> > vc, hc, vr, hr;
int main() {
  scanf("%d%d%d\n", &w, &h, &n);
  vc.insert(make_pair(w, w));
  hc.insert(make_pair(h, h));
  vr.insert(make_pair(-w, w));
  hr.insert(make_pair(-h, h));
  for (int i = 1; i <= n; i++) {
    char c;
    int x;
    scanf("%c%d\n", &c, &x);
    if (c == 'H') {
      pair<int, int> p = *hc.upper_bound(make_pair(x, 1));
      int y1 = p.first, l = p.second;
      int y2 = p.first - l;
      int l1 = y1 - x, l2 = x - y2;
      hc.erase(p);
      hc.insert(make_pair(y1, l1));
      hc.insert(make_pair(x, l2));
      hr.erase(make_pair(-p.second, p.first));
      hr.insert(make_pair(-l1, y1));
      hr.insert(make_pair(-l2, x));
    } else {
      pair<int, int> p = *vc.upper_bound(make_pair(x, 1));
      int y1 = p.first, l = p.second;
      int y2 = p.first - l;
      int l1 = y1 - x, l2 = x - y2;
      vc.erase(p);
      vc.insert(make_pair(y1, l1));
      vc.insert(make_pair(x, l2));
      vr.erase(make_pair(-p.second, p.first));
      vr.insert(make_pair(-l1, y1));
      vr.insert(make_pair(-l2, x));
    }
    int w1 = -(*hr.begin()).first;
    int h1 = -(*vr.begin()).first;
    long long res = 1ll * w1 * h1;
    printf("%I64d\n", res);
  }
  return 0;
}
