#include<bits/stdc++.h>
#include<vector>
using namespace std;
int lowbit(int a)
{
return a & (-a);
}
void add(int k, vector<int> tr, int i)
{
int n = tr.size();
for(int p = i; p <= n; p += lowbit(p))
tr[p] += k;
return;
}
int ask(int i, vector<int> tr)
{
int ans = 0;
for(int p = i; p; p -= lowbit(p))
ans += tr[p];
return ans;
}
int find(int l, int r, vector<int> tr)
{
return ask(r, tr) - ask(l - 1, tr);
}
void build(vector<int> tr, vector<int> a)
{
int n = a.size();
tr.resize(5 * n, 0);
for(int i = 1; i <= n; i++)
add(a[i], tr, i);
}
int main()
{
int n, m;
cin>>n>>m;
vector<int> a;
a.resize(n + 1);
for(int i = 1; i <= n; i++)
{
cin>>a[i];
}
vector<int> tr;
build(tr, a);
while(m--)
{
int t;
cin>>t;
if(t == 1)
{
int k, x;
cin>>x>>k;
add(k, tr, x);
}
if(t == 2)
{
int x, y;
cin>>x>>y;
cout<<find(x, y, tr)<<endl;
}
}
return 0;
}