#include<bits/stdc++.h>
using namespace std;
const int N = 5e5 + 10;
#define lowbit(x) ((x) & (-x))
int tree[N], n, m;
inline void update(int i, int x){
for(int pos = i; pos < N; pos += lowbit(pos)){
tree[pos] += x;
}
}
inline int query(int n){
int ans = 0;
for(int pos = n; pos; pos -= lowbit(pos)){
ans += tree[pos];
}
return ans;
}
inline int sum(int a, int b){
return query(b) - query(a-1);
}
int main(){
cin >> n >> m;
for(int i = 1, x; i <= n; i++){
cin >> x;
update(i, x);
}
for(int i = 1; i <= m; i++){
int op, a, b;
cin >> op >> a >> b;
if(op == 1){
update(a, b);
}else{
cout << sum(a, b) << endl;
}
}
}
04-19
252
08-19
942
08-20
280