/*
MiYu原创, 转帖请注明 : 转载自 ______________白白の屋
http://www.cnblog.com/MiYu
Author By : MiYu
Test : 1
Program : 2642
*/
#include <iostream>
#include <algorithm>
using namespace std;
#define lowbit(x) (x&(-x))
int T;
const int MAX = 1001;
int mat[1002][1002];
int com[1002][1002];
void modify ( int x,int y, int n )
{
while ( x <= MAX ){
int t = y;
while ( t <= MAX ){
com[x][t] += n;
t += lowbit(t);
}
x += lowbit(x);
}
}
int quy ( int x, int y )
{
int sum = 0;
while ( x > 0 ){
int t = y;
while ( t > 0 ){
sum += com[x][t];
t ^= lowbit(t);
}
x ^= lowbit(x);
}
return sum;
}
inline bool scan_d(int &num)
{
char in;bool IsN=false;
in=getchar();
if(in==EOF) return false;
while(in!='-'&&(in<'0'||in>'9')) in=getchar();
if(in=='-'){ IsN=true;num=0;}
else num=in-'0';
while(in=getchar(),in>='0'&&in<='9'){
num*=10,num+=in-'0';
}
if(IsN) num=-num;
return true;
}
int main ()
{
while ( scan_d(T) ) {
int ca = 1;
char s[5]; int a,b,x,y,m,res,maxx,maxy,minx,miny;
memset ( com, 0, sizeof ( com ) );
while ( T -- ) {
scanf ( "%s",s );
switch ( s[0] ){
case 'Q' : scan_d(a);scan_d(x);scan_d(b);scan_d(y); minx = min ( a,x );miny=min(b,y);maxx=max(a,x)+1;maxy=max(b,y)+1;
res = 0; res += quy( maxx,maxy ); res -= quy (maxx,miny); res -= quy(minx,maxy); res += quy(minx,miny);
printf ( "%d\n",res ); break;
case 'B' : scan_d(x);scan_d(y); x++;y++; if ( !mat[x][y] ) { modify ( x,y,1 ); mat[x][y] = 1; } break;
case 'D' : scan_d(x);scan_d(y); x++;y++; if ( mat[x][y] ) { modify ( x,y,-1 ); mat[x][y] = 0; } break;
}
}
}
return 0;
}