#include <stdio.h>
#define DIM 15003
long int A[DIM], v[DIM],S[DIM];
long int t,a,b,sum1,sum2,k,i,j,x,n,m,s,aux;
int main(){
FILE *f = fopen("datorii.in","r");
FILE *g = fopen("datorii.out","w");
fscanf(f,"%ld %ld",&n,&m);
for (i=1;i<=n;i++) {
fscanf(f,"%ld",&S[i]);
j=i;
while ((j&1) == 0) {
v[i]++;
j=j>>1;
}
}
for (i=1;i<=n;i++) {
a=S[i];b=i;
while (b<=n) {
A[b]+=a;
b+=(1<<v[b]);
}
}
for (k=1;k<=m;k++) {
fscanf(f,"%ld %ld %ld",&t,&a,&b);
if (t==0) {
aux=a;
a=b;
b=aux;
a=-a;
while (b<=n) {
A[b]+=a;
b+=(1<<v[b]);
}
} else {
x = a-1;
sum1 = 0;
while (x) {
sum1+=A[x];
x-=(1<<v[x]);
}
x = b;
sum2 = 0;
while (x) {
sum2+=A[x];
x-=(1<<v[x]);
}
fprintf(g,"%ld\n",sum2-sum1);
}
}
fclose(f);
fclose(g);
return 0;
}
#include <stdio.h>
#define DIM 15003
long int A[DIM], v[DIM],S[DIM];
long int t,a,b,sum1,sum2,k,i,j,x,n,m,s,aux;
int main(){
FILE *f = fopen("datorii.in","r");
FILE *g = fopen("datorii.out","w");
fscanf(f,"%ld %ld",&n,&m);
for (i=1;i<=n;i++) {
fscanf(f,"%ld",&S[i]);
j=i;
while ((j&1) == 0) {
v[i]++;
j=j>>1;
}
}
for (i=1;i<=n;i++) {
a=S[i];b=i;
while (b<=n) {
A[b]+=a;
b+=(1<<v[b]);
}
}
for (k=1;k<=m;k++) {
fscanf(f,"%ld %ld %ld",&t,&a,&b);
if (t==0) {
aux=a;
a=b;
b=aux;
a=-a;
while (b<=n) {
A[b]+=a;
b+=(1<<v[b]);
}
} else {
x = a-1;
sum1 = 0;
while (x) {
sum1+=A[x];
x-=(1<<v[x]);
}
x = b;
sum2 = 0;
while (x) {
sum2+=A[x];
x-=(1<<v[x]);
}
fprintf(g,"%ld\n",sum2-sum1);
}
}
fclose(f);
fclose(g);
return 0;
}