#include<bits/stdc++.h>
#define setp(a) fixed<<setprecision(a)
#define Venti cout<<"\nVenti!\n";
#define int long long
#define il inline
using namespace std;
const int V=1e5+10,M=500;
int n,m,a[V];
int len,tot,l[M],r[M],sum[M],bel[M],pre[M];
il void init(void){
len=sqrt(n),tot=(n-1)/len+1;
for(int i=1;i<=tot;i++)
l[i]=r[i-1]+1,r[i]=len*i;
r[tot]=n;
for(int i=1;i<=tot;i++){
for(int j=l[i];j<=r[i];j++)
bel[j]=1,sum[i]+=a[j];
pre[i]=pre[i-1]+sum[i];
}
}
il void modify(int k,int x){
sum[bel[k]]+=x,a[k]+=x;
for(int i=bel[k];i<=tot;i++)
pre[i]+=x;
}
il int query(int lx,int rx){
int ans=0,p=bel[lx],q=bel[rx];
if(p==q){
for(int i=lx;i<=rx;i++)
ans+=a[i];
return ans;
}
ans=pre[q-1]-pre[p];
for(int i=lx;i<=r[p];i++) ans+=a[i];
for(int i=l[q];i<=rx;i++) ans+=a[i];
return ans;
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>a[i];
init();
while(m--){
int op,x,y,k;
cin>>op;
if(op==1){
cin>>x>>k;
modify(k,x);
}
else{
cin>>x>>y;
cout<<query(x,y)<<"\n";
}
}
cout<<endl;
return 0;
}
/*
*/
看瞎了没看出来哪里出问题了……