#include <bits/stdc++.h>
using namespace std;
ifstream in ("rmq.in");
ofstream out ("rmq.out");
int arb_rmq[400004], n, m, a, b, x;
bool op_code;
int interogare(int n, int st, int dr, int x, int y)
{
if(st>x || dr<y){
return 0;
}
if (st>=x && dr<=y) return arb_rmq[n];
int mij = (st+dr)>>1;
return interogare(n*2, st, mij, x, y) + interogare(n*2+1, mij+1, dr, x, y);
}
void modificare(int n, int st, int dr, int p, int val)
{
if(st>p || dr<p){
return;
}
if (st == dr)
{
arb_rmq[n] += val;
return;
}
int mij =(st+dr)>>1;
if (p <= mij) modificare(n*2, st, mij, p, val);
else modificare(n*2+1, mij+1, dr, p, val);
arb_rmq[n] = arb_rmq[n*2] + arb_rmq[n*2+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;
}