树状数组
#include<bits/stdc++.h>
using namespace std;
long long c[500001];
long long i,j,n,m,t,k;
long long lb(long long x)
{return x&(-x);
}
long long get(long long x)
{
long long ans=0;
for(;x;x-=lb(x))
ans+=c[x];
return ans;
}
void add(long long x,long long y){
for(long long i=x;i<=n;i+=lb(i))
c[i]+=y;
}
int main(){
cin>>n>>m;
for(i=1;i<=n;i++)
{scanf("%lld",&t);
add(i,t);
}
while(m--){
cin>>t;
if(t==1){
cin>>j>>k;
add(j,k);
}
else {
cin>>j>>k;
cout<<get(k)-get(j-1)<<endl;
}
}
}