#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector <int> tree;
int merge(int a, int b) {
return max(a, b);
}
void build (int a[], int v, int l, int r){
if(r-l==1){
tree[v]=a[l];
return;
}
int m=(l+r)/2;
build (a,2*v+1, l , m);
build (a,2*v+2, m , r);
tree[v]=merge (tree[2*v+1],tree[2*v+2]);
}
long long get(int v, int l, int r, int ql,int qr){
int E=0;
if(ql<=l and qr>=r){
return tree[v];
}
if (r<=ql or qr<=l){
return E;
}
int m=(l+r)/2;
return merge ( get(2*v+1, l , m , ql, qr),
get(2*v+2, m , r, ql, qr));
}
void update (int v, int l, int r , int pos, long long val){
if (r-l==1){
tree[v]=val;
return;
}
int m=(l+r)/2;
if(pos<m){
update (2*v+1, l,m , pos, val);
}else {
update (2*v+2, m , r, pos, val);
}
tree[v]=merge (tree[2*v+1],tree[2*v+2]);
}
int main() {
int n;
cin>>n;
int a[n];
for(int i=0; i<n; i++){
cin>>a[i];
}
tree.resize(4*n);
build(a,0,0,n);
int k;
cin>>k;
while(k--){
string q;
cin>>q;
if(q=="s"){
int l,r;
cin>>l>>r;
cout<<get(0,0,n,l-1,r)<<endl;
} else {
int i,x;
cin>>i>>x;
update (0,0,n,i-1,x);
}
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp2ZWN0b3IgPGludD4gdHJlZTsKaW50IG1lcmdlKGludCBhLCBpbnQgYikgewogICAgcmV0dXJuIG1heChhLCBiKTsKfQoKdm9pZCBidWlsZCAoaW50IGFbXSwgaW50IHYsIGludCBsLCBpbnQgcil7CglpZihyLWw9PTEpewoJCXRyZWVbdl09YVtsXTsKCQlyZXR1cm47Cgl9CglpbnQgbT0obCtyKS8yOwoJYnVpbGQgKGEsMip2KzEsIGwgLCBtKTsKCWJ1aWxkIChhLDIqdisyLCBtICwgcik7Cgl0cmVlW3ZdPW1lcmdlICh0cmVlWzIqdisxXSx0cmVlWzIqdisyXSk7Cn0KbG9uZyBsb25nIGdldChpbnQgdiwgIGludCBsLCBpbnQgciwgaW50IHFsLGludCBxcil7CglpbnQgRT0wOwoJaWYocWw8PWwgYW5kIHFyPj1yKXsKCQlyZXR1cm4gdHJlZVt2XTsKCX0KCWlmIChyPD1xbCBvciBxcjw9bCl7CgkJcmV0dXJuIEU7Cgl9CglpbnQgbT0obCtyKS8yOwoJcmV0dXJuICBtZXJnZSAoIGdldCgyKnYrMSwgbCAsIG0gLCBxbCwgcXIpLAoJCQkJCWdldCgyKnYrMiwgbSAsIHIsIHFsLCBxcikpOwp9CnZvaWQgdXBkYXRlIChpbnQgdiwgaW50IGwsIGludCByICwgaW50IHBvcywgbG9uZyBsb25nIHZhbCl7CglpZiAoci1sPT0xKXsKCQl0cmVlW3ZdPXZhbDsKCQlyZXR1cm47Cgl9CglpbnQgbT0obCtyKS8yOwoJaWYocG9zPG0pewoJCXVwZGF0ZSAoMip2KzEsIGwsbSAsIHBvcywgdmFsKTsKCX1lbHNlIHsKCQl1cGRhdGUgKDIqdisyLCBtICwgciwgcG9zLCB2YWwpOwoJfQoJdHJlZVt2XT1tZXJnZSAodHJlZVsyKnYrMV0sdHJlZVsyKnYrMl0pOwp9CmludCBtYWluKCkgewoJaW50IG47CgljaW4+Pm47CglpbnQgYVtuXTsKCWZvcihpbnQgaT0wOyBpPG47IGkrKyl7CgkJY2luPj5hW2ldOwoJfQoJdHJlZS5yZXNpemUoNCpuKTsKCWJ1aWxkKGEsMCwwLG4pOwoJaW50IGs7CgljaW4+Pms7Cgl3aGlsZShrLS0pewoJCXN0cmluZyBxOwoJCWNpbj4+cTsKCQlpZihxPT0icyIpewoJCWludCBsLHI7CgkJY2luPj5sPj5yOwoJCWNvdXQ8PGdldCgwLDAsbixsLTEscik8PGVuZGw7CgkJfSBlbHNlIHsKCQkJaW50IGkseDsKCQkJY2luPj5pPj54OwoJCQl1cGRhdGUgKDAsMCxuLGktMSx4KTsKCQl9Cgl9Cn0=