#include <fstream>
using namespace std;
string file = "datorii";
ifstream cin (file + ".in");
ofstream cout (file + ".out");
int aint[300000], v[15000];
void prelucrare(int p,int st, int dr)
{
if (st==dr)
{
aint[p] = v[st];
}
else
{
int m = (st+dr)/2, fs = p*2+1, fd = p*2+2;
prelucrare(fs,st,m);
prelucrare(fd,m+1,dr);
aint[p] = aint[fs] + aint[fd];
}
}
void modificare(int p, int st, int dr, int poz, int val)
{
aint[p] -= val;
if (st != dr)
{
int m = (st+dr)/2, fs = p*2+1, fd = p*2+2;
if (poz <= m)
{
modificare(fs,st,m,poz,val);
}
else
{
modificare(fd,m+1,dr,poz,val);
}
}
}
int interogare(int p, int st, int dr, int a, int b)
{
int c = 0;
if (a <= st && dr <= b)
{
c = aint[p];
}
else
{
int fs = p*2+1, fd = p*2+2, m = (st+dr)/2;
if (a <= m)
{
c += interogare(fs,st,m,a,b);
}
if (b >= m+1)
{
c += interogare(fd,m+1,dr,a,b);
}
}
return c;
}
int main ()
{
int m,x,y,n;
bool op;
cin >> n >> m;
for (int i=0; i<n; i++)
cin >> v[i];
prelucrare(0,0,n-1);
while (m--)
{
cin >> op >> x >> y;
if (op)
{
cout << interogare(0,0,n-1,x-1,y-1) << '\n';
}
else
{
modificare(0,0,n-1,x-1,y);
}
}
}