// .h file code:
#include <string>
#include <unordered_set>
#include <vector>
#include <algorithm>
#include <iostream>
class Maalin
{
public:
static void Main(std::vector<std::wstring> &args);
};
// Helper class added by C# to C++ Converter:
#include <string>
#include <vector>
int main(int argc, char **argv)
{
std::vector<std::wstring> args(argv + 1, argv + argc);
Maalin::Main(args);
}
// .cpp file code:
#include "snippet.h"
void Maalin::Main(std::vector<std::wstring> &args)
{
//final long startTime = System.nanoTime();
try
{
std::vector<std::wstring> inp;
std::getline(std::wcin, inp)->Split(L" ");
long long bleb = std::stoll(inp[0]);
long long blob = std::stoll(inp[1]);
int coms = std::stoi(inp[3]);
std::vector<std::vector<std::wstring>> add(coms);
std::vector<long long> coamuns(std::stoi(inp[2]));
int temp = 0;
int temp2 = 0;
std::unordered_set<std::wstring> rowadds;
std::unordered_set<std::wstring> coladds;
for (int i = 0;i < coms;i++)
{
std::getline(std::wcin, add[i])->Split(L" ");
}
for (int i = coms - 1;i > -1;i--)
{
if (add[i][0].Equals(L"R") && !std::find(rowadds.begin(), rowadds.end(), add[i][1]) != rowadds.end())
{
coamuns[std::stoi(add[i][2]) - 1] += blob - temp2;
rowadds.insert(add[i][1]);
temp += 1;
}
else if (add[i][0].Equals(L"C") && !std::find(coladds.begin(), coladds.end(), add[i][1]) != coladds.end())
{
coamuns[std::stoi(add[i][2]) - 1] += bleb - temp;
coladds.insert(add[i][1]);
temp2 += 1;
}
}
for (int i = 0;i < std::stoi(inp[2]);i++)
{
std::wcout << coamuns[i] << std::endl;
}
//Arrays.stream(coamuns).forEachOrdered(System.out::println);
}
catch (...)
{
}
//final long duration = System.nanoTime() - startTime;
//System.out.println(TimeUnit.NANOSECONDS.toMillis(duration));
}