#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
long long int num;
long long int bit[1000001]={0};
long long int sum(long long int b)
{
long long int sum = 0;
for (; b; b -= b&(-b))
sum += bit[b];
return sum;
}
long long int sum(long long int a, long long int b)
{
return sum(b) - (a == 1 ? 0 : sum(a - 1));
}
void update( long long int idx, long long int val)
{
while(idx<=num){
bit[idx]+=val;
idx+=(idx&(-idx));
}
}
void updatesub( long long int idx, long long int val)
{
while(idx<=num){
bit[idx]-=val;
idx+=(idx&(-idx));
}
}
int main()
{
int e,i;
long long int s=0,m,c;
cin>>num>>m;
for(i=1;i<=num;i++)
{
cin>>e;
update(i,e);
}
while(m--)
{
long long int low,up;
char k;
cin>>k>>low>>up;
if(k=='S')
{
low=low+1; up=up+1;
cout<<sum(low,up)<<endl;
}
else if(k=='G')
{ low=low+1;
update(low,up);
}
else if(k=='T')
{ low=low+1;
updatesub(low, (up));
}
}
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGNzdGRpbz4KI2luY2x1ZGU8Y21hdGg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKbG9uZyBsb25nIGludCBudW07CmxvbmcgbG9uZyBpbnQgYml0WzEwMDAwMDFdPXswfTsKIAogCmxvbmcgbG9uZyBpbnQgc3VtKGxvbmcgbG9uZyBpbnQgYikKewogICAgbG9uZyBsb25nIGludCBzdW0gPSAwOwogICAgZm9yICg7IGI7IGIgLT0gYiYoLWIpKQogICAgICAgIHN1bSArPSBiaXRbYl07CiAgICByZXR1cm4gc3VtOwp9CiAKbG9uZyBsb25nIGludCBzdW0obG9uZyBsb25nIGludCBhLCBsb25nIGxvbmcgaW50IGIpCnsKICAgIHJldHVybiBzdW0oYikgLSAoYSA9PSAxID8gMCA6IHN1bShhIC0gMSkpOwp9CiAKdm9pZCB1cGRhdGUoIGxvbmcgbG9uZyBpbnQgaWR4LCBsb25nIGxvbmcgaW50IHZhbCkKewoJd2hpbGUoaWR4PD1udW0pewoJCWJpdFtpZHhdKz12YWw7CgkJCgkJaWR4Kz0oaWR4JigtaWR4KSk7Cgl9Cn0gCiAKdm9pZCB1cGRhdGVzdWIoIGxvbmcgbG9uZyBpbnQgaWR4LCBsb25nIGxvbmcgaW50IHZhbCkKewoJd2hpbGUoaWR4PD1udW0pewoJCWJpdFtpZHhdLT12YWw7CgkJCgkJaWR4Kz0oaWR4JigtaWR4KSk7Cgl9Cn0gCiAKIAppbnQgbWFpbigpCnsgCmludCBlLGk7CmxvbmcgbG9uZyBpbnQgcz0wLG0sYzsKY2luPj5udW0+Pm07CiAKZm9yKGk9MTtpPD1udW07aSsrKQp7IAogIGNpbj4+ZTsKICB1cGRhdGUoaSxlKTsKfQp3aGlsZShtLS0pCnsKbG9uZyBsb25nIGludCBsb3csdXA7CmNoYXIgazsKY2luPj5rPj5sb3c+PnVwOwppZihrPT0nUycpCnsgCmxvdz1sb3crMTsgdXA9dXArMTsKY291dDw8c3VtKGxvdyx1cCk8PGVuZGw7Cn0KZWxzZSBpZihrPT0nRycpCnsgIGxvdz1sb3crMTsKdXBkYXRlKGxvdyx1cCk7Cn0KZWxzZSBpZihrPT0nVCcpCnsgIGxvdz1sb3crMTsKdXBkYXRlc3ViKGxvdywgKHVwKSk7Cn0KfQpyZXR1cm4gMDsKfSAg