#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=