#include <vector>
#include <algorithm>
#include <cstdio>
using namespace std;
typedef vector<int> vi;
const int INF=987654321;
struct RangeResult{ int m1, m2; };
RangeResult merge(const RangeResult& a, const RangeResult& b){
if( a.m1 < b.m1 ) return { b.m1, max(b.m2, a.m1) };
else return { a.m1, max(a.m2, b.m1) };
}
struct snode {
int i, j; RangeResult res;
snode *l, *r;
~snode() { delete l; delete r; }
snode(int i, int j, const vi& arr ): i(i), j(j) {
if (j - i == 1) {
l = r = NULL;
res = { arr[i], 0 };
} else {
int k = i + j >> 1;
l = new snode(i, k, arr);
r = new snode(k, j, arr);
res = merge(l->res, r->res);
}
}
void update(int P, int V){
if( i == P && j == P+1 ){
res = { V, 0 };
}else if( j <= P || P < i ){
return;
}else{
if(l) l->update(P,V), r->update(P,V);
res = merge( l->res, r->res );
}
}
RangeResult query(int I, int J){
if( I <= i && j <= J){
return res;
}else if( j <= I || J <= i ){
return {0,0};
}else{
return merge( l->query(I,J), r->query(I,J) );
}
}
};
struct segment {
snode *root;
segment() : root(0) {}
void init(int n, const vi& arr) {
if(root) delete root;
root = new snode(0, n, arr);
}
void update(int p, int v){
root->update(p, v);
}
int query(int i, int j){
RangeResult res=root->query(i, j+1);
return res.m1+res.m2;
}
};
int N,Q, a,b; char cmd[3];
int main() {
scanf("%d",&N); vi A(N);
for(int i=0;i<N;i++) scanf("%d",&A[i]);
segment tree; tree.init(N, A);
scanf("%d",&Q);
while(Q--){
scanf("%s%d%d",cmd,&a,&b);
if(cmd[0]=='Q')
printf("%d\n",tree.query(a-1, b-1));
else if(cmd[0]=='U')
tree.update(a-1, b);
}
return 0;
}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGNzdGRpbz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdHlwZWRlZiB2ZWN0b3I8aW50PiB2aTsKY29uc3QgaW50IElORj05ODc2NTQzMjE7CnN0cnVjdCBSYW5nZVJlc3VsdHsgaW50IG0xLCBtMjsgfTsKUmFuZ2VSZXN1bHQgbWVyZ2UoY29uc3QgUmFuZ2VSZXN1bHQmIGEsIGNvbnN0IFJhbmdlUmVzdWx0JiBiKXsKCWlmKCBhLm0xIDwgYi5tMSApIHJldHVybiB7IGIubTEsIG1heChiLm0yLCBhLm0xKSB9OwoJZWxzZSByZXR1cm4geyBhLm0xLCBtYXgoYS5tMiwgYi5tMSkgfTsKfQpzdHJ1Y3Qgc25vZGUgewogICAgaW50IGksIGo7IFJhbmdlUmVzdWx0IHJlczsKICAgIHNub2RlICpsLCAqcjsKICAgIH5zbm9kZSgpIHsgZGVsZXRlIGw7IGRlbGV0ZSByOyB9CiAgICBzbm9kZShpbnQgaSwgaW50IGosIGNvbnN0IHZpJiBhcnIgKTogaShpKSwgaihqKSB7CiAgICAgICAgaWYgKGogLSBpID09IDEpIHsKICAgICAgICAgICAgbCA9IHIgPSBOVUxMOwogICAgICAgICAgICByZXMgPSB7IGFycltpXSwgMCB9OwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGludCBrID0gaSArIGogPj4gMTsKICAgICAgICAgICAgbCA9IG5ldyBzbm9kZShpLCBrLCBhcnIpOwogICAgICAgICAgICByID0gbmV3IHNub2RlKGssIGosIGFycik7CiAgICAgICAgICAgIHJlcyA9IG1lcmdlKGwtPnJlcywgci0+cmVzKTsKICAgICAgICB9CiAgICB9CiAgICB2b2lkIHVwZGF0ZShpbnQgUCwgaW50IFYpewogICAgICAgIGlmKCBpID09IFAgJiYgaiA9PSBQKzEgKXsKICAgICAgICAgICAgcmVzID0geyBWLCAwIH07CiAgICAgICAgfWVsc2UgaWYoIGogPD0gUCB8fCBQIDwgaSApewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfWVsc2V7CiAgICAgICAgCWlmKGwpIGwtPnVwZGF0ZShQLFYpLCByLT51cGRhdGUoUCxWKTsKICAgICAgICAJcmVzID0gbWVyZ2UoIGwtPnJlcywgci0+cmVzICk7CiAgICAgICAgfQogICAgfQogICAgUmFuZ2VSZXN1bHQgcXVlcnkoaW50IEksIGludCBKKXsKICAgICAgICBpZiggSSA8PSBpICYmIGogPD0gSil7CiAgICAgICAgICAgIHJldHVybiByZXM7CiAgICAgICAgfWVsc2UgaWYoIGogPD0gSSB8fCBKIDw9IGkgKXsKICAgICAgICAgICAgcmV0dXJuIHswLDB9OwogICAgICAgIH1lbHNlewogICAgICAgICAgICByZXR1cm4gbWVyZ2UoIGwtPnF1ZXJ5KEksSiksIHItPnF1ZXJ5KEksSikgKTsKICAgICAgICB9CiAgICB9Cn07CnN0cnVjdCBzZWdtZW50IHsKICAgIHNub2RlICpyb290OwogICAgc2VnbWVudCgpIDogcm9vdCgwKSB7fQogICAgdm9pZCBpbml0KGludCBuLCBjb25zdCB2aSYgYXJyKSB7CiAgICAgICAgaWYocm9vdCkgZGVsZXRlIHJvb3Q7CiAgICAgICAgcm9vdCA9IG5ldyBzbm9kZSgwLCBuLCBhcnIpOwogICAgfQogICAgdm9pZCB1cGRhdGUoaW50IHAsIGludCB2KXsKICAgIAlyb290LT51cGRhdGUocCwgdik7CiAgICB9CiAgICBpbnQgcXVlcnkoaW50IGksIGludCBqKXsKICAgICAgICBSYW5nZVJlc3VsdCByZXM9cm9vdC0+cXVlcnkoaSwgaisxKTsKICAgICAgICByZXR1cm4gcmVzLm0xK3Jlcy5tMjsKICAgIH0KfTsKaW50IE4sUSwgYSxiOyBjaGFyIGNtZFszXTsKaW50IG1haW4oKSB7CglzY2FuZigiJWQiLCZOKTsgdmkgQShOKTsKCWZvcihpbnQgaT0wO2k8TjtpKyspIHNjYW5mKCIlZCIsJkFbaV0pOwoJc2VnbWVudCB0cmVlOyB0cmVlLmluaXQoTiwgQSk7CglzY2FuZigiJWQiLCZRKTsKCXdoaWxlKFEtLSl7CgkJc2NhbmYoIiVzJWQlZCIsY21kLCZhLCZiKTsKCQlpZihjbWRbMF09PSdRJykKCQkJcHJpbnRmKCIlZFxuIix0cmVlLnF1ZXJ5KGEtMSwgYi0xKSk7CgkJZWxzZSBpZihjbWRbMF09PSdVJykKCQkJdHJlZS51cGRhdGUoYS0xLCBiKTsKCX0KCXJldHVybiAwOwp9