#include <bits/stdc++.h>
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int n,m,a[50001],i,j,x,p,b,c;
int suma(int stq,int drq,int stn,int drn,int indn){
if(stn>=stq && drn<=drq) return a[indn];
int s=0;
if(stq<=(stn+drn)/2) s=suma(stq, drq, stn, (stn+drn)/2, indn*2);
if(drq>(stn+drn)/2) s+=suma(stq, drq, (stn+drn)/2+1, drn, indn*2+1);
return s;
}
void update1(int poz,int val){
a[poz]-=val;
while(poz>=1){
poz/=2;
a[poz]=a[poz*2]+a[poz*2+1];
}
}
void update2(int poz, int val, int stn,int drn, int indn){
if(stn==drn) a[stn]-=val;
else{
if(poz<=(stn+drn)/2) update2(poz, val, stn, (stn+drn)/2, indn*2);
else update2(poz, val, (stn+drn)/2+1, drn, indn*2+1);
a[poz]=a[poz*2]+a[poz*2+1];
}
}
int main()
{
f>>n>>m;
p=1;
while(p<n) p*=2;
for(i=1;i<=n;++i){
f>>x;
a[p+i-1]=x;
}
for(i=p-1;i>=1;--i) a[i]=a[i*2]+a[i*2+1];
for(i=1;i<=m;++i){
f>>x>>b>>c;
if(x==1){
g<<suma(b,c,1,p,1)<<'\n';
}
else{
b+=(p-1);
update1(b,c);
}
}
return 0;
}