#include<bits/stdc++.h>
#define p2 p<<1
#define p3 p<<1|1
using namespace std;
const int N=2e5+5;
int n,m,a[N],x,y,tr[N*4];
char c;
void build(int l,int r,int p){
if(l==r)return tr[p]=a[l],void();
int mid=l+r>>1;
build(l,mid,p2),build(mid+1,r,p3);
tr[p]=max(tr[p2],tr[p3]);
}
void update(int l,int r,int k,int p,int v){
if(k==l&&l==r){
if(v>tr[p])tr[p]=v;
return;
}int mid=l+r>>1;
if(k<=mid)update(l,mid,k,p2,v);
else update(mid+1,r,k,p3,v);
tr[p]=max(tr[p2],tr[p3]);
}
int query(int l,int r,int x,int y,int p){
if(l==x&&r==y)return tr[p];
int mid=l+r>>1,ret;
if(y<=mid)ret=query(l,mid,x,y,p2);
else if(x>mid)ret=query(mid+1,r,x,y,p3);
else ret=max(query(l,mid,x,mid,p2),query(mid+1,r,mid+1,y,p3));
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;++i)cin>>a[i];
build(1,n,1);
while(m--){
cin>>c>>x>>y;
if(c=='Q')cout<<query(1,n,x,y,1)<<'\n';
else update(1,n,x,1,y);
}
return 0;
}
IDE 测了一下是运行时错误,但是本地运行可以过而且样例是对的看不出来,如果是很脑弹的问题请指出并骂死我()