#include <bits/stdc++.h>
using namespace std;
set<pair<int, int> > x_ivls, y_ivls, x_revs, y_revs;
void add(set<pair<int, int> >& ivls, set<pair<int, int> >& revs, int a, int b) {
  ivls.emplace(a, b - a);
  revs.emplace(b - a, a);
}
void remove(set<pair<int, int> >& ivls, set<pair<int, int> >& revs, int a,
            int b) {
  ivls.erase({a, b - a});
  revs.erase({b - a, a});
}
void work(set<pair<int, int> >& ivls, set<pair<int, int> >& revs, int c) {
  auto ab_it = ivls.lower_bound({c, 0});
  if (ab_it == ivls.end() || ab_it->first > c) ab_it--;
  int a = ab_it->first, b = a + ab_it->second;
  remove(ivls, revs, a, b);
  add(ivls, revs, a, c);
  add(ivls, revs, c, b);
}
int main() {
  ios_base::sync_with_stdio(false);
  int x1, y1, n;
  cin >> x1 >> y1 >> n;
  add(x_ivls, x_revs, 0, x1);
  add(y_ivls, y_revs, 0, y1);
  string c;
  int q;
  for (auto i = (0); i < n; i++) {
    cin >> c >> q;
    if (c[0] == 'V')
      work(x_ivls, x_revs, q);
    else
      work(y_ivls, y_revs, q);
    cout << ((long long)x_revs.rbegin()->first) *
                ((long long)y_revs.rbegin()->first)
         << endl;
  }
  return 0;
}
