#include <bits/stdc++.h>
using namespace std;
ifstream in ("datorii.in");
ofstream out ("datorii.out");
int arb_rmq[50003],n,m,a,b,x,op_code;
inline int interogare(int n,int st, int dr, int p, int q)
{
if(p<=st && dr<=q) return arb_rmq[n];
int st_aux = 0, dr_aux = 0;
int mij=(st+dr)>>1;
if (p <= mij) st_aux = interogare(n<<1, st, mij, p, q);
if (q > mij) dr_aux = interogare(-(~(n << 1)), mij+1, dr, p, q);
return st_aux + dr_aux;
}
inline void modificare(int n,int st, int dr, int t, int v)
{
if(st==dr)
{
arb_rmq[n] += v;
return;
}
int mij=(st+dr)>>1;
if(t<=mij) modificare(n<<1, st, mij, t, v);
else modificare(-(~(n << 1)), mij+1, dr, t, v);
arb_rmq[n]= arb_rmq[n<<1]+arb_rmq[-(~(n << 1))];
}
int main()
{
in>>n>>m;
for(int i=1; i<=n; ++i)
{
in>>x;
modificare(1,1,n,i,x);
}
for(int i=1; i<=m; ++i)
{
in>>op_code>>a>>b;
if(op_code == 1) out<<interogare(1,1,n,a,b)<<"\n";
else modificare(1,1,n,a,-b);
}
return 0;
}