#include <bits/stdc++.h>
using namespace std;
int main() {
  int w, h, n;
  cin >> w >> h >> n;
  map<int, int> width;
  map<int, int> height;
  map<int, int> mW;
  map<int, int> mH;
  mW[0] = 1;
  mH[-h] = 1;
  mH[0] = 1;
  mW[-w] = 1;
  width[0] = 1;
  width[w] = 1;
  height[0] = 1;
  height[h] = 1;
  map<int, int> heights;
  map<int, int> widths;
  heights[h] = 1;
  widths[w] = 1;
  unsigned long long maxH = h, maxW = w;
  for (int i = 0; i < n; i++) {
    char c;
    cin >> c;
    if (c == 'H') {
      int h0;
      cin >> h0;
      int prev = -mH.lower_bound(-h0)->first;
      int next = height.upper_bound(h0)->first;
      height[h0] = 1;
      mH[-h0] = 1;
      int hh = next - prev;
      heights[hh]--;
      if (heights[hh] == 0) heights.erase(hh);
      heights[h0 - prev]++;
      heights[next - h0]++;
    }
    if (c == 'V') {
      int w0;
      cin >> w0;
      int prev = -mW.lower_bound(-w0)->first;
      int next = width.upper_bound(w0)->first;
      width[w0] = 1;
      mW[-w0] = 1;
      int ww = next - prev;
      widths[ww]--;
      if (widths[ww] == 0) widths.erase(ww);
      widths[w0 - prev]++;
      widths[next - w0]++;
    }
    maxH = (heights.rbegin())->first;
    maxW = (widths.rbegin())->first;
    unsigned long long ans = maxH * maxW;
    cout << ans << endl;
  }
  return 0;
}
