1 #include <iostream>
2 #include <cstring>
3 #include <cstdio>
4 #define mem(a,b) memset(a,b,sizeof(a));
5 using namespace std;
6 typedef long long ll;
7 const int maxn = 500005;
8 const ll INF = 0x3f3f3f3f;
9 int n,m;
10 ll a[maxn];
11 ll lowbit(ll t) {//取出t的最低位1
12 return t&(-t);
13 }
14 ll getsum(ll x) {
15 ll ans = 0;
16 for(int i = x; i > 0; i -= lowbit(i)) {
17 ans += a[i];
18 }
19 return ans;
20 }
21 void update(ll x,ll v) {
22 for(int i = x; i <= n; i+=lowbit(i)) {
23 a[i] += v;
24 }
25 }
26 int main()
27 {
28
29 cin >> n >> m;
30 ll c;
31 for(int i = 1; i <= n; i++) {
32 cin >> c;
33 update(i,c);
34 }
35 int op;
36 ll x,y,z;
37 for(int i = 1; i <= m; i++) {
38 cin >> op;
39 if(op == 1) {
40 cin >> x >> z;
41 update(x,z);
42 }
43 else {
44 cin >> x >> y;
45 cout << getsum(y) - getsum(x-1) << endl;
46 }
47 }
48 return 0;
49 }