#include <bits/stdc++.h>
using namespace std;
int main() {
  multiset<long long> Horiz1;
  multiset<long long> Horiz2;
  multiset<long long> Vert1;
  multiset<long long> Vert2;
  long long w, h, N;
  cin >> w >> h >> N;
  long long zn[N];
  Horiz1.insert(0);
  Horiz1.insert(w);
  Horiz2.insert(w);
  Vert1.insert(0);
  Vert1.insert(h);
  Vert2.insert(h);
  for (int i = 0; i < N; ++i) {
    char T;
    long long pl;
    cin >> T >> pl;
    if (T == 'H') {
      Vert1.insert(pl);
      auto it1 = Vert1.find(pl);
      auto it2 = Vert1.find(pl);
      it1--;
      it2++;
      Vert2.erase(Vert2.find(*it2 - *it1));
      Vert2.insert(pl - *it1);
      Vert2.insert(*it2 - pl);
    } else if (T == 'V') {
      Horiz1.insert(pl);
      auto it3 = Horiz1.find(pl);
      auto it4 = Horiz1.find(pl);
      it3--;
      it4++;
      Horiz2.erase(Horiz2.find(*it4 - *it3));
      Horiz2.insert(pl - *it3);
      Horiz2.insert(*it4 - pl);
    }
    auto it5 = Vert2.end();
    auto it6 = Horiz2.end();
    it5--;
    it6--;
    zn[i] = (*it5) * (*it6);
  }
  for (int i = 0; i < N; ++i) {
    cout << zn[i] << endl;
  }
}
