#include <fstream>
using namespace std;
//////////////////////////////////////
ifstream cin("datorii.in");
ofstream cout("datorii.out");
const int MAX = 15e3 + 1;
long long aib[MAX] , n , m , aux , poz , val , st , dr;
/////////////////////////////////////////////
void update( long long x , long long val ){
while(x <= n){
aib[x] -= val;
x += (x&-x);
}
}
long long query( long long x ){
long long sum = 0;
while(x){
sum += aib[x];
x -= (x&-x);
}
return sum;
}
int main()
{
cin >> n >> m;
for(int i = 1 ; i <= n ; i++){
cin >> val;
aib[i] += val;
aib[i + (i&-i)] += aib[i];
}
while( m-- ){
cin >> aux;
if(!aux){
cin >> poz >> val;
update(poz,val);
}
if(aux){
cin >> st >> dr;
cout << query(dr) - query(st-1) << '\n';
}
}
return 0;
}