#include<cstdio>
#include<cstring>
using namespace std;
#define maxn 50001
//int c[maxn]; 
int a[4*maxn];
int sum[4*maxn];
void build(int rt,int l,int r){
    if (l==r) {
    	sum[rt]=a[l];return;
	}
    int m=(l+r)>>1;
	build(rt<<1,l,m);
	build(rt<<1|1,m+1,r);
    sum[rt]=sum[rt<<1]+sum[rt<<1|1];
    
}

void update(int pos,int val,int rt,int l,int r){
   if (l==r) {
		sum[rt]=sum[rt]+val;
		return;
	}
	int m=(l+r)>>1;
   if (pos<=m)
     update(pos,val,rt<<1,l,m);
   else update(pos,val,rt<<1|1,m+1,r);
   sum[rt]=sum[rt<<1]+sum[rt<<1|1]; 
}

int query(int L,int R,int rt,int l,int r)
{
	if (L<=l&&r<=R) return sum[rt];
    int m=(l+r)>>1;
     int ans=0;
	if (L<=m)
    ans+=query(L,R,rt<<1,l,m);
    if (R>m)
    ans+=query(L,R,rt<<1|1,m+1,r);
    return ans;
}

int main()
{   char s[100];int T;int n;
	scanf("%d",&T);
	for (int kase=1;kase<=T;kase++){
	
		memset(a,0,sizeof(a));
		memset(sum,0,sizeof(sum));
		scanf("%d",&n);
		printf("Case %d:\n",kase);
		for (int i=1;i<=n;i++)
		    scanf("%d",&a[i]);
		
		build(1,1,n); 
		while (~scanf("%s",s)&&strcmp(s,"End")!=0){
			int x,y;
			scanf("%d%d",&x,&y);
			if (s[0]=='Q') {
		       printf("%d\n",query(x,y,1,1,n));
			}
			else {
				if (s[0]=='S') 
				    update(x,-y,1,1,n);
			   else if(s[0]=='A')
			        update(x,y,1,1,n);
			}
		}
	}
}