#include <bits/stdc++.h>
using namespace std;
vector<pair<int, int> > wcie;
vector<pair<int, int> > hcie;
pair<int, int> idx[200009];
int eldw[200009];
int h_w[200009];
int h_h[200009];
int eldh[200009];
vector<int> wdl;
vector<int> hdl;
vector<long long> wynik;
int finw(int pos) {
  for (; pos != eldw[pos];) {
    eldw[pos] = eldw[eldw[pos]];
    pos = eldw[pos];
  }
  return pos;
}
int Unw(int a, int b) {
  int aa = finw(a);
  int bb = finw(b);
  wdl[bb] += wdl[aa];
  wdl[aa] = wdl[bb];
  if (h_w[bb] > h_w[aa]) {
    eldw[aa] = bb;
  } else if (h_w[bb] < h_w[aa]) {
    eldw[bb] = aa;
  } else {
    eldw[aa] = bb;
    ++h_w[bb];
  }
  return wdl[aa];
}
int finh(int pos) {
  for (; pos != eldh[pos];) {
    eldh[pos] = eldh[eldh[pos]];
    pos = eldh[pos];
  }
  return pos;
}
int Unh(int a, int b) {
  int aa = finh(a);
  int bb = finh(b);
  hdl[bb] += hdl[aa];
  hdl[aa] = hdl[bb];
  if (h_h[bb] > h_h[aa]) {
    eldh[aa] = bb;
  } else if (h_h[bb] < h_h[aa]) {
    eldh[bb] = aa;
  } else {
    eldh[aa] = bb;
    ++h_h[bb];
  }
  return hdl[aa];
}
int main() {
  for (int i = 0; i < 200009; ++i) {
    eldh[i] = i;
    eldw[i] = i;
  }
  int w, h, n;
  scanf("%d%d%d", &w, &h, &n);
  for (int i = 0; i < n; ++i) {
    char a;
    int b;
    scanf(" %c%d", &a, &b);
    pair<int, int> p;
    p.first = b;
    p.second = i;
    if (a == 'H') {
      hcie.push_back(p);
    } else {
      wcie.push_back(p);
    }
  }
  sort(wcie.begin(), wcie.end());
  sort(hcie.begin(), hcie.end());
  if (wcie.size() > 0) {
    wdl.push_back(wcie[0].first);
    for (int i = 1; i < wcie.size(); ++i) {
      wdl.push_back(wcie[i].first - wcie[i - 1].first);
      idx[wcie[i - 1].second].first = i - 1;
      idx[wcie[i - 1].second].second = 1;
    }
    wdl.push_back(w - wcie[wcie.size() - 1].first);
    idx[wcie[wcie.size() - 1].second].first = wcie.size() - 1;
    idx[wcie[wcie.size() - 1].second].second = 1;
  } else
    wdl.push_back(w);
  if (hcie.size() > 0) {
    hdl.push_back(hcie[0].first);
    for (int i = 1; i < hcie.size(); ++i) {
      hdl.push_back(hcie[i].first - hcie[i - 1].first);
      idx[hcie[i - 1].second].first = i - 1;
      idx[hcie[i - 1].second].second = 2;
    }
    hdl.push_back(h - hcie[hcie.size() - 1].first);
    idx[hcie[hcie.size() - 1].second].first = hcie.size() - 1;
    idx[hcie[hcie.size() - 1].second].second = 2;
  } else
    hdl.push_back(h);
  int najw = 0, najh = 0;
  for (int i = 0; i < wdl.size(); ++i) {
    if (wdl[i] > najw) najw = wdl[i];
  }
  for (int i = 0; i < hdl.size(); ++i) {
    if (hdl[i] > najh) najh = hdl[i];
  }
  for (int i = n - 1; i >= 0; --i) {
    wynik.push_back((long long)najw * najh);
    if (idx[i].second == 1) {
      int x = Unw(idx[i].first, idx[i].first + 1);
      if (najw < x) najw = x;
    } else {
      int x = Unh(idx[i].first, idx[i].first + 1);
      if (najh < x) najh = x;
    }
  }
  for (int i = wynik.size() - 1; i >= 0; --i) {
    printf("%I64d\n", wynik[i]);
  }
  return 0;
}
