#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 ele,i;
long long int s=0,m,c;
cin>>num>>m;
for(i=1;i<=num;i++)
{
cin>>ele;
s+=ele;
if(i&1==1)
{ bit[i]=ele;
}
else
{ c=i; bit[c]=s;
while(c>0)
{ bit[c] -= bit[c - ( c& (-c))];
c= c - ( c& (-c));
}
}
}
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+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKbG9uZyBsb25nIGludCBudW07CmxvbmcgbG9uZyBpbnQgYml0WzEwMDAwMDFdPXswfTsKIAogCmxvbmcgbG9uZyBpbnQgc3VtKGxvbmcgbG9uZyBpbnQgYikKewogICAgbG9uZyBsb25nIGludCBzdW0gPSAwOwogICAgZm9yICg7IGI7IGIgLT0gYiYoLWIpKQogICAgICAgIHN1bSArPSBiaXRbYl07CiAgICByZXR1cm4gc3VtOwp9CiAKbG9uZyBsb25nIGludCBzdW0obG9uZyBsb25nIGludCBhLCBsb25nIGxvbmcgaW50IGIpCnsKICAgIHJldHVybiBzdW0oYikgLSAoYSA9PSAxID8gMCA6IHN1bShhIC0gMSkpOwp9CiAKdm9pZCB1cGRhdGUoIGxvbmcgbG9uZyBpbnQgaWR4LCBsb25nIGxvbmcgaW50IHZhbCkKewoJd2hpbGUoaWR4PD1udW0pewoJCWJpdFtpZHhdKz12YWw7CgkJCgkJaWR4Kz0oaWR4JigtaWR4KSk7Cgl9Cn0gCiAKdm9pZCB1cGRhdGVzdWIoIGxvbmcgbG9uZyBpbnQgaWR4LCBsb25nIGxvbmcgaW50IHZhbCkKewoJd2hpbGUoaWR4PD1udW0pewoJCWJpdFtpZHhdLT12YWw7CgkJCgkJaWR4Kz0oaWR4JigtaWR4KSk7Cgl9Cn0gCiAKIAppbnQgbWFpbigpCnsgCmludCBlbGUsaTsKbG9uZyBsb25nIGludCBzPTAsbSxjOwpjaW4+Pm51bT4+bTsKIApmb3IoaT0xO2k8PW51bTtpKyspCnsgCiAgY2luPj5lbGU7CiAgcys9ZWxlOwogIGlmKGkmMT09MSkKICB7IGJpdFtpXT1lbGU7CiAgfQogIGVsc2UKICB7IGM9aTsgYml0W2NdPXM7CiAgICB3aGlsZShjPjApCiAgICB7IGJpdFtjXSAtPSBiaXRbYyAtICggYyYgKC1jKSldOwogICAgICBjPSBjIC0gKCBjJiAoLWMpKTsKICAgIH0KICB9Cn0Kd2hpbGUobS0tKQp7CmxvbmcgbG9uZyBpbnQgbG93LHVwOwpjaGFyIGs7CmNpbj4+az4+bG93Pj51cDsKaWYoaz09J1MnKQp7IApsb3c9bG93KzE7IHVwPXVwKzE7CmNvdXQ8PHN1bShsb3csdXApPDxlbmRsOwp9CmVsc2UgaWYoaz09J0cnKQp7ICBsb3c9bG93KzE7CnVwZGF0ZShsb3csdXApOwp9CmVsc2UgaWYoaz09J1QnKQp7ICBsb3c9bG93KzE7CnVwZGF0ZXN1Yihsb3csICh1cCkpOwp9Cn0KcmV0dXJuIDA7Cn0gIA==