#include<bits/stdc++.h>
using namespace std;
int n,a[50010],c[50010],m;
int lowbit(int x){
return x& -x;
}
int qiu(int x){
int ans=0;
for(;x>0;x-=lowbit(x)){
ans+=c[x];
}
return ans;
}
void jia(int x,int y){
for(;x<=n;x+=lowbit(x)){
c[x]+=y;
}
}
int main() {
int i;
cin>>n>>m;
for(i=1;i<=n;i++){
cin>>a[i];
jia(i,a[i]);
}
int op,a1,a2;
for(i=1;i<=m;i++){
cin>>op>>a1>>a2;
if(op==1){
jia(a1,a2);
}
if(op==2){
cout<<qiu(a2)-qiu(a1-1)<<endl;
}
}
return 0;
}
为什么输出时a1要减一