#include <bits/stdc++.h>
using namespace std;
int main()
{ ios::sync_with_stdio(false);
int b,c,n;
cin >> b >> c >>n;
int s[31][51]={0};
int t=0,p=0;//t為剩餘 p為丟棄
while(n--){
char q ;
int z;
cin >> q >> z;//z為差距(高度)
// b 為高度 c 為寬度
if(q=='A'){
if(b-z<4) {p++; continue;} // 檢查高度
int k=0;
for(int i=0;i<c&&k==0;i++){
//找到當排為0的
if(s[z][i]==0&&s[z+1][i]==0&&s[z+2][i]==0&&s[z+3][i]==0) {
s[z][i]=1;
for(int j=i;j>=0;j--){
if(s[z][j]==0) s[z][j]=2;
}
s[z+1][i]=1;
for(int j=i;j>=0;j--){
if(s[z+1][j]==0) s[z+1][j]=2;
}
s[z+2][i]=1;
for(int j=i;j>=0;j--){
if(s[z+2][j]==0) s[z+2][j]=2;
}
s[z+3][i]=1;
for(int j=i;j>=0;j--){
if(s[z+3][j]==0) s[z+3][j]=2;
}
k=1;
}
}
}
else if(q=='C'){
if(b-z<2) {p++; continue;} // 檢查高度
int k=0;
for(int i=0;i<c&&k==0;i++){
//找到當排為0的
if(i==c-1){p++;break;}//檢查寬度
else if(s[z][i]==0&&s[z][i+1]==0&&s[z+1][i]==0&&s[z+1][i+1]==0) {
s[z][i]=1;
for(int j=i;j>=0;j--){
if(s[z][j]==0) s[z][j]=2;
}
s[z+1][i]=1;
for(int j=i;j>=0;j--){
if(s[z+1][j]==0) s[z+1][j]=2;
}
s[z][i+1]=1;
s[z+1][i+1]=1;
k=1;
}
}
}
else if(q=='B'){
int k=0;
for(int i=0;i<c&&k==0;i++){
//找到當排為0的
if(i==c-2){p++;break;}//檢查寬度
else if(s[z][i]==0&&s[z][i+1]==0&&s[z][i+2]==0) {
//cout << "&&"<< z <<" "<<i << endl;
s[z][i]=1;
s[z][i+1]=1;
s[z][i+2]=1;
k=1;
}
}
}
else if(q=='D'){
if(b-z<2) {p++; continue;} // 檢查高度
int k=0;
for(int i=0;i<c&&k==0;i++){
//找到當排為0的
if(s[z][i]==0&&s[z+1][i]==0&&s[z+1][i-1]==0&&s[z+1][i-2]==0) {
s[z][i]=1;
for(int j=i;j>=0;j--){
if(s[z][j]==0) s[z][j]=2;
}
s[z+1][i]=1;
s[z+1][i-1]=1;
s[z+1][i-2]=1;
for(int j=i-2;j>=0;j--){
if(s[z+1][j]==0) s[z+1][j]=2;
}
k=1;
}
else if(i==c-1) p++;
}
}
else if(q=='E'){
if(b-z<3) {p++; continue;} // 檢查高度
int k=0;
for(int i=0;i<c&&k==0;i++){
//找到當排為0的
if(s[z][i]==0&&s[z+1][i]==0&&s[z+1][i-1]==0&&s[z+2][i]==0&&s[z+2][i-1]==0) {
s[z][i]=1;
for(int j=i;j>=0;j--){
if(s[z][j]==0) s[z][j]=2;
}
s[z+1][i]=1;
s[z+1][i-1]=1;
for(int j=i-1;j>=0;j--){
if(s[z+1][j]==0) s[z+1][j]=2;
}
s[z+2][i]=1;
s[z+2][i-1]=1;
for(int j=i-1;j>=0;j--){
if(s[z+2][j]==0) s[z+2][j]=2;
}
k=1;
}
else if(i==c-1) p++;
}
}
/* for(int i=0;i<b;i++){
for(int j=0;j<c;j++){
cout << s[i][j] << " ";
}
cout << endl;
}cout << p << endl;
}*/
for(int i=0;i<b;i++){
for(int j=0;j<c;j++){
if(s[i][j]==0||s[i][j]==2) t++;
}
}
cout << t << " " << p << endl;
return 0;
}
我的想法是把已擋住的地方設為2,使積木不能進去