#include <bits/stdc++.h>
using namespace std;
#define int long long
const int maxn = 2e5 + 10;
int tree[maxn*4],a[maxn],n,m;
inline int lowbit(int k){
return k & -k;
}
int sum(int x) {
long long ret = 0;
for (int i=x;i;i-=lowbit(i))
ret += tree[i];
return ret;
}
void add(int x,int d) {
for (int i=x;i<=n;i+=lowbit(i))
tree[i] += d;
}
signed main() {
cin >> n >> m;
for (int i=1;i<=n;i++) {
cin >> a[i];
add(i,a[i]);
}
for(int i=1;i<=m;i++){
int opr,x,y;
cin >> opr >> x >> y;
if(opr==1)
add(x,y);
if(opr==2)
cout << sum(y)-sum(x-1) << endl;
}
}
求调