#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<iostream>
#include<algorithm>
using namespace std;
int map[1005][1005],map1[1005][1005];;
int lowbit(int x)
{
return x&(-x);
}
void add(int x,int y,int num)
{
for(int i = x; i <=1001; i+=lowbit(i))
for(int j = y; j <= 1001; j+=lowbit(j))
map[i][j] += num;
}
int getsum(int x,int y)
{
int res = 0;
for(int i = x; i > 0; i -= lowbit(i))
for(int j = y; j > 0; j -= lowbit(j))
res += map[i][j];
return res;
}
int main()
{
int A = 1001;
int t,n,Case = 1;
scanf("%d",&t);
while(t--)
{
printf("Case %d:\n",Case++);
memset(map,0,sizeof(map));
for(int i=1; i<=A; i++)
for(int j=1; j<=A; j++)
{
add(i,j,1);
map1[i][j]=1;
}
cin>>n;
int x1,x2,y1,y2,w;
while(n--)
{
char op;
cin>>op;
if(op=='A')
{
scanf("%d%d%d",&x1,&y1,&w);
x1++,y1++;
add(x1,y1,w);
map1[x1][y1]+=w;
}
else if(op=='D')
{
scanf("%d%d%d",&x1,&y1,&w);
x1++,y1++;
if(map1[x1][y1]<w)w=map1[x1][y1];
add(x1,y1,-w);
map1[x1][y1]-=w;
}
else if(op=='M')
{
scanf("%d%d%d%d%d",&x1,&y1,&x2,&y2,&w);
x1++,y1++,x2++,y2++;
if(map1[x1][y1]<w)w=map1[x1][y1];
add(x1,y1,-w);
map1[x1][y1]-=w;
add(x2,y2,w);
map1[x2][y2]+=w;
}
else if(op=='S')
{
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
x1++,y1++,x2++,y2++;
if(x1>x2)swap(x1,x2);
if(y1>y2)swap(y1,y2);
int sum=getsum(x2,y2)-getsum(x2,y1-1)-getsum(x1-1,y2)+getsum(x1-1,y1-1);
printf("%d\n",sum);
}
}
}
}