#include <bits/stdc++.h>
const int dx[4] = {1, 0, -1, 0};
const int dy[4] = {0, -1, 0, 1};
const int INF = 1e9 + 7;
using namespace std;
int w, h, n;
const int maxn = 210000;
char s[maxn][3];
int a1[maxn], a2[maxn], v[maxn], p1[maxn], p2[maxn], f1[maxn], f2[maxn];
long long out[maxn];
int main() {
  cin >> w >> h >> n;
  int c1 = 2, c2 = 2;
  a1[1] = h;
  a2[1] = w;
  for (int i = 0; i < n; i++) {
    scanf("%s %d", s[i], &v[i]);
    if (s[i][0] == 'V')
      a2[c2++] = v[i];
    else
      a1[c1++] = v[i];
  }
  sort(a1, a1 + c1);
  sort(a2, a2 + c2);
  for (int i = 0; i < c1; i++) {
    p1[i] = i - 1;
    f1[i] = i + 1;
  }
  for (int i = 0; i < c2; i++) {
    p2[i] = i - 1;
    f2[i] = i + 1;
  }
  int ans1 = 0, ans2 = 0;
  for (int i = 1; i < c1; i++) ans1 = max(ans1, a1[i] - a1[i - 1]);
  for (int i = 1; i < c2; i++) ans2 = max(ans2, a2[i] - a2[i - 1]);
  for (int i = n - 1; i >= 0; i--) {
    out[i] = (long long)ans1 * ans2;
    if (s[i][0] == 'V') {
      int pos = lower_bound(a2, a2 + c2, v[i]) - a2, pos2 = f2[pos],
          pos1 = p2[pos];
      ans2 = max(ans2, a2[pos2] - a2[pos1]);
      a2[pos] = a2[pos1];
      f2[p2[pos]] = pos2;
      p2[pos2] = p2[pos];
    } else {
      int pos = lower_bound(a1, a1 + c1, v[i]) - a1, pos2 = f1[pos],
          pos1 = p1[pos];
      ans1 = max(ans1, a1[pos2] - a1[pos1]);
      a1[pos] = a1[pos1];
      f1[p1[pos]] = pos2;
      p1[pos2] = p1[pos];
    }
  }
  for (int i = 0; i < n; i++) {
    printf("%I64d\n", out[i]);
  }
  return 0;
}
