#include <iostream>
#include <string>
using namespace std;
const int N = 1e3;
struct ii{
int l;
int r;
int va;
}p[N];
void bui(int l,int r, int v){
p[v].l = l;
p[v].r = r;
p[v].va = 0;
if(l == r) return ;
int minn = (l + r) / 2;
bui(l,minn,v * 2);
bui(minn + 1,r,v * 2 + 1);
}
void update(int l,int r,int v,int va){
p[v].va += va;
if(p[v].l == l && p[v].r == r) return ;
int minn = (p[v].l + p[v].r) / 2;
if(r <= minn) update(l,r,v * 2,va);
else if(l > minn) update(l,r,v * 2 + 1,va);
else{
update(l,minn,v * 2,va);
update(minn + 1,r,v * 2 + 1,va);
}
}
int sove(int l,int r,int v){
if(p[v].l == l && p[v].r == r) return p[v].va;
int minn = (p[v].l + p[v].r) / 2;
if(r <= minn) return sove(l,r,v * 2);
else if(l > minn) return sove(l,r,v * 2 + 1);
else return sove(l,minn,v * 2) + sove(minn + 1,r,v * 2 + 1);
}
void solve(){
int n;
cin >> n;
bui(1,n,1);
for(int i = 1; i <= n; i ++){
int rr;
cin >> rr;
update(i,i,1,rr);
}
string op;
while(cin >> op){
if(op == "End") break;
if(op == "Add"){
int lll,kk;
cin >> lll >> kk;
update(lll,lll,1,kk);
}
if(op == "Sub"){
int lll,kk;
cin >> lll >> kk;
update(lll,lll,1,-kk);
}
if(op == "Query"){
int lll,rr;
cin >> lll >> rr;
cout << sove(lll,rr,1) << endl;
}
}
return ;
}
int main(){
solve();
return 0;
}