#include<cstdio>
#include<vector>
#include<algorithm>

using namespace std;

#define MAXN 220
int board[MAXN][MAXN];
int W, H, Q;
int query[MAXN][6];
vector<int> xcord, ycord;
int dx[4]={-1,0,1,0};
int dy[4]={0,1,0,-1};



void dfs(int a,int b,int c)
{
	if(board[a][b]!=1-c) return;
	board[a][b]=c;
	for(int i=0;i<4;i++)
		dfs(a+dx[i],b+dy[i],c);
	return;
}
int main()
{
	scanf("%d%d%d",&H,&W,&Q);
	xcord.push_back(0); xcord.push_back(1); xcord.push_back(H+1); xcord.push_back(H+2);
	ycord.push_back(0); ycord.push_back(1); ycord.push_back(W+1); ycord.push_back(W+2);
	for(int i=0;i<Q;i++)
	{
		char str[255];
		scanf("%s",str);
		if(str[0]=='R')
		{
			query[i][0]=0;
			for(int j=1;j<=5;j++)
				scanf("%d",&query[i][j]);
			query[i][3]++;
			query[i][4]++;
			xcord.push_back(query[i][1]);
			xcord.push_back(query[i][3]);
			ycord.push_back(query[i][2]);
			ycord.push_back(query[i][4]);
		}
		else
		{
			query[i][0]=1;
			for(int j=1;j<=3;j++)
				scanf("%d",&query[i][j]);
		}
	}
	sort(xcord.begin(),xcord.end());
	sort(ycord.begin(),ycord.end());
	int xSZ=unique(xcord.begin(),xcord.end())-xcord.begin();
	int ySZ=unique(ycord.begin(),ycord.end())-ycord.begin();
	for(int i=0;i<=xSZ-2;i++)
		board[i][0]=board[i][ySZ-2]=-1;
	for(int i=0;i<=ySZ-2;i++)
		board[0][i]=board[xSZ-2][i]=-1;
	for(int i=0;i<Q;i++)
	{
		if(query[i][0]==0)
		{
			int xstart=lower_bound(xcord.begin(),xcord.begin()+xSZ,query[i][1])-xcord.begin();
			int ystart=lower_bound(ycord.begin(),ycord.begin()+ySZ,query[i][2])-ycord.begin();
			int xend=lower_bound(xcord.begin(),xcord.begin()+xSZ,query[i][3])-xcord.begin();
			int yend=lower_bound(ycord.begin(),ycord.begin()+ySZ,query[i][4])-ycord.begin();
			for(int j=xstart;j<xend;j++)
				for(int k=ystart;k<yend;k++)
					board[j][k]=query[i][5];
		}
		else
		{
			int xc=upper_bound(xcord.begin(),xcord.begin()+xSZ,query[i][1])-xcord.begin()-1;
			int yc=upper_bound(ycord.begin(),ycord.begin()+ySZ,query[i][2])-ycord.begin()-1;
			dfs(xc,yc,query[i][3]);
		}
	}
	long long ans=0;
	for(int i=1;i<=xSZ-3;i++)
		for(int j=1;j<=ySZ-3;j++)
			if(board[i][j])
				ans+=1LL*(xcord[i+1]-xcord[i])*(ycord[j+1]-ycord[j]);
	printf("%lld",ans);
	return 0;
}