#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#include<stack>
using namespace std;
int n,m,k,l,p,a,b,tree[2000010];
int lowbit(int x){
return x&-x;
}
void add(int x,int k){
while(x<=n){
tree[x]+=k; x+=lowbit(x);
}
}
int sum(int x){
int ans=0;
while(x!=0){
ans+=tree[x];
x-=lowbit(x);
}
return ans;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
scanf("%d",&a);
add(i,a);
}
for(int i=1;i<=m;i++){
scanf("%d%d%d",&k,&a,&b);
if(k==1) add(a,b);
if(k==2) cout<<sum(b)-sum(a-1)<<endl;
}
}