#include <bits/stdc++.h>
using namespace std;
long long w, h, n;
int main() {
  while (cin >> w >> h >> n) {
    set<long long> st1, st2;
    multiset<long long> s1, s2;
    st1.insert(0);
    st1.insert(w);
    st2.insert(0);
    st2.insert(h);
    s1.insert(w);
    s2.insert(h);
    char c;
    long long t;
    long long max1 = w, max2 = h;
    while (n--) {
      cin >> c >> t;
      set<long long>::iterator it;
      if (c == 'V') {
        st1.insert(t);
        it = st1.find(t);
        it--;
        long long tmp1 = *it;
        it++;
        it++;
        long long tmp2 = *it;
        long long d1 = t - tmp1, d2 = tmp2 - t, tmp = tmp2 - tmp1;
        s1.erase(s1.find(tmp));
        s1.insert(d1);
        s1.insert(d2);
        max1 = *(--s1.end());
      } else {
        st2.insert(t);
        it = st2.find(t);
        it--;
        long long tmp1 = *it;
        it++;
        it++;
        long long tmp2 = *it;
        long long d1 = t - tmp1, d2 = tmp2 - t, tmp = tmp2 - tmp1;
        s2.erase(s2.find(tmp));
        s2.insert(d1);
        s2.insert(d2);
        max2 = *(--s2.end());
      }
      cout << max1 * max2 << endl;
    }
  }
  return 0;
}
