#include<stdio.h>
int n,m,a[15001],x,y,ok,doi[14]={1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192},zero[15001];
void adaug(int i,int x)
{do
{a[i]=a[i]+x;
i=i+doi[zero[i]];}while(i<=n);}
int sum(int x)
{int s=0;
do{s=s+a[x];
x=x-doi[zero[x]];
}while(x>0);
return s;}
int main()
{freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
scanf("%d %d",&n,&m);
for(x=2;x<=n;x=x+2)
{for(y=0;(doi[y]&x)==0;y++);
zero[x]=y;}
for(x=1;x<=n;x++)
{scanf("%d",&y);
adaug(x,y);}
for(;m;m--)
{scanf("%d %d %d",&ok,&x,&y);
if(ok) printf("%d\n",sum(y)-sum(x-1));
else adaug(x,-y);}
return 0;}