#include <bits/stdc++.h>
#pragma GCC otpimize("O2")
#define int long long
using namespace std;
int n,m,i,sb,sa,v[200001],a[400001];
char z;
void build(int k,int t,int w){
int mid;
if(t==w){
a[k]+=v[t];
return;
}
mid=(t+w)>>1;
build(k*2,t,mid);
build(k*2+1,mid+1,w);
a[k]=max(a[k*2],a[k*2+1]);
}
int ask(int k,int t,int w,int x,int y){
int mid;
if(y<t||x>w) return -2147483647;
if(x<=t&&w<=y)
return a[k];
mid=(t+w)/2;
return max(ask(k*2,t,mid,x,y),ask(k*2+1,mid+1,w,x,y));
}
void xg(int k,int t,int w,int now,int will){
int mid;
if(w<now||t>now) return ;
if(t==w&&t==now){
a[k]=will;
return;
}
mid=(t+w)>>1;
xg(k*2,t,mid,now,will);
xg(k*2+1,mid+1,w,now,will);
a[k]=max(a[k*2],a[k*2+1]);
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(NULL);cout.tie(NULL);
cin>>n>>m;
for(i=1;i<=n;i++) cin>>v[i];
build(1,1,n);
for(i=1;i<=m;i++){
cin>>z>>sa>>sb;
if(z=='Q') cout<<ask(1,1,n,sa,sb)<<"\n";
if(z=='U')
if(v[sa]<v[sb])
xg(1,1,n,sa,v[sb]);
}
}