#include <bits/stdc++.h>
using namespace std;
int w, h, k;
int mx;
int par[200005];
int cnt[200005];
int a1[200005], a2[200005];
int pos[200005];
bool type[200005];
void init(int n) {
  for (int i = 1; i <= n; i++) {
    par[i] = i;
    cnt[i] = 1;
  }
  mx = 1;
}
int fi(int &x) {
  if (par[x] != x) return par[x] = fi(par[x]);
  return par[x];
}
void un(int x, int y) {
  x = fi(x);
  y = fi(y);
  if (x == y) return;
  cnt[y] += cnt[x];
  par[x] = y;
  mx = max(mx, cnt[y]);
}
int num1[200005], num2[200005];
int main() {
  char c;
  cin >> w >> h >> k;
  for (int i = 1; i <= k; i++) {
    cin >> c >> pos[i];
    if (c == 'V') {
      type[i] = 0;
      num1[pos[i]] = 1;
    } else {
      type[i] = 1;
      num2[pos[i]] = 1;
    }
  }
  init(w);
  for (int i = 1; i <= w - 1; i++) {
    if (num1[i] == 0) un(i, i + 1);
  }
  for (int i = k; i >= 1; i--) {
    a1[i] = mx;
    if (type[i] == 0) un(pos[i], pos[i] + 1);
  }
  init(h);
  for (int i = 1; i <= h - 1; i++) {
    if (num2[i] == 0) un(i, i + 1);
  }
  for (int i = k; i >= 1; i--) {
    a2[i] = mx;
    if (type[i] == 1) un(pos[i], pos[i] + 1);
  }
  for (int i = 1; i <= k; i++) {
    cout << (long long)a1[i] * (long long)a2[i] << endl;
  }
  return 0;
}
