#include<bits/stdc++.h>
using namespace std;
#define mx 100009
typedef long long ll;
ll BIT[mx];
void initBIT(ll arr[],ll n){
    memset(BIT,0,sizeof(BIT));
    ll i,idx;
    for(i=1;i<=n;i++){
        ll value=arr[i-1];
        idx=i;
        while(idx<=n){
           BIT[idx]+=value;
           idx+=(idx&(-idx));
        }
    }
}
void update(ll idx,ll value,ll n){
    idx=idx+1;
    while(idx<=n){
        BIT[idx]+=value;
        idx+=(idx&(-idx));
    }
}
ll query(ll r,ll n){
    int idx=r+1;
    int ans=0;
    while(idx>0){
        ans+=BIT[idx];
        idx-=(idx&(-idx));
    }
    return ans;
}
int main()
{
    ll arr[mx],n,index,value,q,com,x,y,tc,cs=0;
    scanf("%lld",&tc);
    while(tc--){
    scanf("%lld%lld",&n,&q);
    for(int i=0;i<n;i++) scanf("%lld",&arr[i]);
    initBIT(arr,n);
    printf("Case %lld:\n",++cs);
    while(q--){
    scanf("%lld",&com);
    if(com==1){
        scanf("%lld",&index);
        ll tmp=index-1;
        ll ans=query(index,n)-query(tmp,n);
        printf("%lld\n",ans);
        update(index,-ans,n);
    }
    else if(com==2){
        scanf("%lld%lld",&index,&value);
        update(index,value,n);
    }
    else if(com==3){
        scanf("%lld%lld",&x,&y);
        printf("%lld\n",query(y,n)-query(--x,n));
    }
    }
    }
    return 0;
}
 
 
				I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBteCAxMDAwMDkKdHlwZWRlZiBsb25nIGxvbmcgbGw7CmxsIEJJVFtteF07CnZvaWQgaW5pdEJJVChsbCBhcnJbXSxsbCBuKXsKICAgIG1lbXNldChCSVQsMCxzaXplb2YoQklUKSk7CiAgICBsbCBpLGlkeDsKICAgIGZvcihpPTE7aTw9bjtpKyspewogICAgICAgIGxsIHZhbHVlPWFycltpLTFdOwogICAgICAgIGlkeD1pOwogICAgICAgIHdoaWxlKGlkeDw9bil7CiAgICAgICAgICAgQklUW2lkeF0rPXZhbHVlOwogICAgICAgICAgIGlkeCs9KGlkeCYoLWlkeCkpOwogICAgICAgIH0KICAgIH0KfQp2b2lkIHVwZGF0ZShsbCBpZHgsbGwgdmFsdWUsbGwgbil7CiAgICBpZHg9aWR4KzE7CiAgICB3aGlsZShpZHg8PW4pewogICAgICAgIEJJVFtpZHhdKz12YWx1ZTsKICAgICAgICBpZHgrPShpZHgmKC1pZHgpKTsKICAgIH0KfQpsbCBxdWVyeShsbCByLGxsIG4pewogICAgaW50IGlkeD1yKzE7CiAgICBpbnQgYW5zPTA7CiAgICB3aGlsZShpZHg+MCl7CiAgICAgICAgYW5zKz1CSVRbaWR4XTsKICAgICAgICBpZHgtPShpZHgmKC1pZHgpKTsKICAgIH0KICAgIHJldHVybiBhbnM7Cn0KaW50IG1haW4oKQp7CiAgICBsbCBhcnJbbXhdLG4saW5kZXgsdmFsdWUscSxjb20seCx5LHRjLGNzPTA7CiAgICBzY2FuZigiJWxsZCIsJnRjKTsKICAgIHdoaWxlKHRjLS0pewogICAgc2NhbmYoIiVsbGQlbGxkIiwmbiwmcSk7CiAgICBmb3IoaW50IGk9MDtpPG47aSsrKSBzY2FuZigiJWxsZCIsJmFycltpXSk7CiAgICBpbml0QklUKGFycixuKTsKICAgIHByaW50ZigiQ2FzZSAlbGxkOlxuIiwrK2NzKTsKICAgIHdoaWxlKHEtLSl7CiAgICBzY2FuZigiJWxsZCIsJmNvbSk7CiAgICBpZihjb209PTEpewogICAgICAgIHNjYW5mKCIlbGxkIiwmaW5kZXgpOwogICAgICAgIGxsIHRtcD1pbmRleC0xOwogICAgICAgIGxsIGFucz1xdWVyeShpbmRleCxuKS1xdWVyeSh0bXAsbik7CiAgICAgICAgcHJpbnRmKCIlbGxkXG4iLGFucyk7CiAgICAgICAgdXBkYXRlKGluZGV4LC1hbnMsbik7CiAgICB9CiAgICBlbHNlIGlmKGNvbT09Mil7CiAgICAgICAgc2NhbmYoIiVsbGQlbGxkIiwmaW5kZXgsJnZhbHVlKTsKICAgICAgICB1cGRhdGUoaW5kZXgsdmFsdWUsbik7CiAgICB9CiAgICBlbHNlIGlmKGNvbT09Myl7CiAgICAgICAgc2NhbmYoIiVsbGQlbGxkIiwmeCwmeSk7CiAgICAgICAgcHJpbnRmKCIlbGxkXG4iLHF1ZXJ5KHksbiktcXVlcnkoLS14LG4pKTsKICAgIH0KICAgIH0KICAgIH0KICAgIHJldHVybiAwOwp9Cgo=