#include<fstream>
using namespace std;
ifstream cin("datorii.in");
ofstream cout("datorii.out");
int x[1500005], n, m, vac = 0, y[150004];
void add(int poz, int nod, int st, int dr, int val)
{
if(st == dr)
{
x[nod] = val;
return ;
}
int m = (st + dr) / 2;
if(m >= poz)
add(poz, nod * 2, st, m, val);
else
add(poz, nod * 2 + 1, m + 1, dr, val);
x[nod] = x[nod * 2] + x[nod * 2 + 1];
}
void sum(int nod, int a, int b, int st, int dr)
{
if(a <= st && dr <= b)
{
vac += x[nod];
return ;
}
int m = (st + dr) / 2;
if(a <= m)
sum(nod * 2, a, b, st, m);
if(b > m)
sum(nod * 2 + 1, a, b, m + 1, dr);
}
int main()
{
int n, m, a, ind;
cin >> n >> m;
for(int i = 1; i <= n; i++)
{
cin >> a;
y[i] = a;
add(i, 1, 1, n, a);
}
for(int i = 0; i < m; i++)
{
cin >> ind;
if(ind == 1){
int aa, bb;
cin >> aa >> bb;
vac = 0;
sum(1, aa, bb, 1, n);
cout << vac << "\n";
}
else
{
int t, v;
cin >> t >> v;
add(t, 1, 1, n, y[t] - v);
}
}
}