#include<iostream>
#include<algorithm>
using namespace std;
unsigned long long BIT[ 1000000 ] ,a[ 1000000 ] ,n;
void update( int x, int val)
{
for ( ; x <= n; x + = ( x & - x) )
BIT[ x] + = val;
}
int query( int x)
{
int sum = 0 ;
for ( ; x > 0 ; x - = ( x & - x) )
sum + = BIT[ x] ;
return sum;
}
int main( )
{
int q;
char t;
cin >> n>> q;
for ( int i = 1 ; i <= n; i++ ) {
cin >> a[ i] ;
update( i,a[ i] ) ;
}
while ( q-- ) {
cin >> t;
if ( t == 'S' ) {
int a,b;
cin >> a>> b;
if ( a == 0 ) {
x = query( b + 1 ) ;
cout << x<< endl;
}
else {
x = query( b+ 1 ) ;
y = query( a) ;
cout << ( x- y) << endl;
}
else if ( t == 'G' ) {
int w,x;
cin >> w>> x;
update( w+ 1 ,x) ;
}
else if ( t == 'T' ) {
int y,z;
cin >> y>> z;
update( y+ 1 ,- z) ;
}
}
return 0 ;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGFsZ29yaXRobT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdW5zaWduZWQgbG9uZyBsb25nIEJJVFsxMDAwMDAwXSxhWzEwMDAwMDBdLG47CnZvaWQgdXBkYXRlKGludCB4LCBpbnQgdmFsKQp7CiAgICAgIGZvcig7IHggPD0gbjsgeCArPSAoeCAmIC14KSkKICAgICAgICBCSVRbeF0gKz0gdmFsOwp9CmludCBxdWVyeShpbnQgeCkKewogICAgIGludCBzdW0gPSAwOwogICAgIGZvcig7IHggPiAwOyB4IC09ICh4ICYgLXgpKQogICAgICAgIHN1bSArPSBCSVRbeF07CiAgICAgcmV0dXJuIHN1bTsKfQppbnQgbWFpbigpCnsKCWludCBxOwoJY2hhciB0OwoJY2luPj5uPj5xOwoJZm9yKGludCBpID0gMTtpIDw9IG47aSsrKXsKCQljaW4+PmFbaV07CgkJdXBkYXRlKGksYVtpXSk7Cgl9Cgl3aGlsZShxLS0pewoJCWNpbj4+dDsKCQlpZih0ID09ICdTJyl7CgkJCWludCBhLGI7CgkJCWNpbj4+YT4+YjsKCQkJaWYoYSA9PSAwKXsKCQkJCXggPSBxdWVyeShiICsgMSk7CgkJCQljb3V0PDx4PDxlbmRsOwoJCQl9CgkJCWVsc2V7CgkJCQl4ID0gcXVlcnkoYisxKTsKCQkJCXkgPSBxdWVyeShhKTsKCQkJCWNvdXQ8PCh4LXkpPDxlbmRsOyAKCQkJfQoJCWVsc2UgaWYodCA9PSAnRycpewoJCQlpbnQgdyx4OwoJCQljaW4+Pnc+Png7CgkJCXVwZGF0ZSh3KzEseCk7CgkJfQoJCWVsc2UgaWYodCA9PSAnVCcpewoJCQlpbnQgeSx6OwoJCQljaW4+Pnk+Pno7CgkJCXVwZGF0ZSh5KzEsLXopOwoJCX0KCX0KCXJldHVybiAwOwp9