#include <bits/stdc++.h>
#define _ ;
#define __ (
#define ___ )
#define ____ [
#define _____ ]
#define ______ ,
#define _______ {
#define ________ }
#define _________ <=
#define __________ =
#define ___________ +
#define ____________ -
#define _____________ >>
#define ______________ <<
#define _______________ void
#define ________________ int
#define _________________ long
#define __________________ 1000100
#define ___________________ 0
#define ____________________ 1
#define _________________________ max
#define ______________________________ for
#define _______________________________ cin
#define ________________________________ cout
#define _________________________________ main
#define __________________________________ using
#define ___________________________________ namespace
#define ____________________________________ std
#define _____________________________________ return
#define se second
#define fi first
#define pb push_back
#define get_bit(mask,j) (mask>>j)&1
__________________________________ ___________________________________ ____________________________________ _
__________________________________ ll __________ _________________ _________________ _
__________________________________ pii __________ pair< ________________ ______ ________________ > _
__________________________________ pll __________ pair<ll ______ ll> _
const ________________ maxn __________ 25e4 ___________ 5 _
const ________________ mod __________ 1e9 ___________ 7 _
const ll inf __________ 1e18 _
_______________ read __ ___
_______
#define name "lyson"
_______________________________ .tie __ ___________________ ___ ->ios_base::sync_with_stdio __ ___________________ ___ _ ________________________________ .tie __ ___________________ ___ _
if __ fopen __ name".INP" ______ "r" ___ ___ _______
freopen __ name".INP" ______ "r" ______ stdin ___ _
freopen __ name".OUT" ______ "w" ______ stdout ___ _
________
________
struct SparseMin _______
________________ n ______ LG _
vector<vector<ll _____________ st _
SparseMin __ ________________ _n ___ _______
n __________ _n _
LG __________ __lg __ _________________________ __ ____________________ ______ n ___ ___ ___________ ____________________ _
st.assign __ LG ______ vector<ll> __ n ___________ ____________________ ___ ___ _
________
_______________ build __ vector<ll> &a ___ _______
______________________________ __ ________________ i __________ ____________________ _ i _________ n _ i++ ___ st ____ ___________________ _____ ____ i _____ __________ a ____ i _____ _
______________________________ __ ________________ k __________ ____________________ _ k < LG _ k++ ___ _______
______________________________ __ ________________ i __________ ____________________ _ i ___________ __ ____________________ ______________ k ___ ____________ ____________________ _________ n _ i++ ___ _______
st ____ k _____ ____ i _____ __________ min __ st ____ k ____________ ____________________ _____ ____ i _____ ______ st ____ k ____________ ____________________ _____ ____ i ___________ __ ____________________ ______________ __ k ____________ ____________________ ___ ___ _____ ___ _
________
________
________
ll get __ ________________ l ______ ________________ r ___ _______
________________ k __________ __lg __ r ____________ l ___________ ____________________ ___ _
_____________________________________ min __ st ____ k _____ ____ l _____ ______ st ____ k _____ ____ r ____________ __ ____________________ ______________ k ___ ___________ ____________________ _____ ___ _
________
________ _
struct SparseMax _______
________________ n ______ LG _
vector<vector<ll _____________ st _
SparseMax __ ________________ _n ___ _______
n __________ _n _
LG __________ __lg __ _________________________ __ ____________________ ______ n ___ ___ ___________ ____________________ _
st.assign __ LG ______ vector<ll> __ n ___________ ____________________ ___ ___ _
________
_______________ build __ vector<ll> &a ___ _______
______________________________ __ ________________ i __________ ____________________ _ i _________ n _ i++ ___ st ____ ___________________ _____ ____ i _____ __________ a ____ i _____ _
______________________________ __ ________________ k __________ ____________________ _ k < LG _ k++ ___ _______
______________________________ __ ________________ i __________ ____________________ _ i ___________ __ ____________________ ______________ k ___ ____________ ____________________ _________ n _ i++ ___ _______
st ____ k _____ ____ i _____ __________ _________________________ __ st ____ k ____________ ____________________ _____ ____ i _____ ______ st ____ k ____________ ____________________ _____ ____ i ___________ __ ____________________ ______________ __ k ____________ ____________________ ___ ___ _____ ___ _
________
________
________
ll get __ ________________ l ______ ________________ r ___ _______
________________ k __________ __lg __ r ____________ l ___________ ____________________ ___ _
_____________________________________ _________________________ __ st ____ k _____ ____ l _____ ______ st ____ k _____ ____ r ____________ __ ____________________ ______________ k ___ ___________ ____________________ _____ ___ _
________
________ _
________________ n ______ q _
vector<ll> a _
inline vector<ll> predp __ vector<ll> &f ___
_______
ll cur1 __________ ____________ inf ______ cur2 __________ ____________ inf _
______________________________ __ ________________ i __________ ____________________ _ i _________ n _ i++ ___ _______
cur1 __________ _________________________ __ cur1 ______ f ____ i ____________ ____________________ _____ ___________ a ____ i _____ ___ _
cur2 __________ _________________________ __ cur2 ______ f ____ i ____________ ____________________ _____ ____________ a ____ i _____ ___ _
f ____ i _____ __________ _________________________ __ cur1 ____________ a ____ i _____ ______ cur2 ___________ a ____ i _____ ___ _
________
_____________________________________ f _
________
_______________ solve __ ___
_______
_______________________________ _____________ n _____________ q _
a.resize __ n ___________ ____________________ ___ _
______________________________ __ ________________ i __________ ____________________ _ i _________ n _ i++ ___ _______
_______________________________ _____________ a ____ i _____ _
________
vector<ll> pre __ n ___________ 2 ______ ___________________ ___ ______ suf __ n ___________ 2 ______ ___________________ ___ _
pre __________ predp __ pre ___ _
reverse __ a.begin __ ___ ___________ ____________________ ______ a.end __ ___ ___ _
suf __________ predp __ suf ___ _
reverse __ a.begin __ ___ ___________ ____________________ ______ a.end __ ___ ___ _
reverse __ suf.begin __ ___ ___________ ____________________ ______ suf.end __ ___ ____________ ____________________ ___ _
vector<ll> hate __ n ___ _
______________________________ __ ________________ i __________ ____________________ _ i < n _ i++ ___ _______
hate ____ i _____ __________ pre ____ i _____ ___________ suf ____ i ___________ ____________________ _____ _
________
vector<ll> pref __ n ___________ 2 ______ ____________ inf ___ ______ suff __ n ___________ 2 ______ ____________ inf ___ _
vector<ll> preg __ n ___________ 2 ______ ____________ inf ___ ______ sufg __ n ___________ 2 ______ ____________ inf ___ _
______________________________ __ ________________ i __________ ____________________ _ i _________ n _ i++ ___ _______
pref ____ i _____ __________ _________________________ __ pref ____ i ____________ ____________________ _____ ______ pre ____ i ____________ ____________________ _____ ___________ a ____ i _____ ___ _
preg ____ i _____ __________ _________________________ __ preg ____ i ____________ ____________________ _____ ______ pre ____ i ____________ ____________________ _____ ____________ a ____ i _____ ___ _
________
______________________________ __ ________________ i __________ n _ i >= ____________________ _ i-- ___ _______
suff ____ i _____ __________ _________________________ __ suff ____ i ___________ ____________________ _____ ______ suf ____ i ___________ ____________________ _____ ____________ a ____ i _____ ___ _
sufg ____ i _____ __________ _________________________ __ sufg ____ i ___________ ____________________ _____ ______ suf ____ i ___________ ____________________ _____ ___________ a ____ i _____ ___ _
________
________________________________ ______________ pre ____ n _____ ______________ " " _
SparseMax stm __ n ____________ ____________________ ___ ______ st0 __ n ___ _
SparseMin st1 __ n ___ _
stm.build __ hate ___ _
st0.build __ a ___ _
st1.build __ a ___ _
while __ q-- ___ _______
char type _
________________ x ______ y _
_______________________________ _____________ type _____________ x _____________ y _
if __ x > y ___ swap __ x ______ y ___ _
if __ type == 'H' ___ _______
________________________________ ______________ stm.get __ x ______ y ____________ ____________________ ___ ______________ " " _
________
else _______
ll mx __________ st0.get __ x ______ y ___ _
ll mn __________ st1.get __ x ______ y ___ _
ll res __________ pre ____ x ____________ ____________________ _____ ___________ mx ____________ mn ___________ suf ____ y ___________ ____________________ _____ _
res __________ _________________________ __ res ______ pref ____ x ____________ ____________________ _____ ____________ mn ___________ suf ____ y ___________ ____________________ _____ ___ _
res __________ _________________________ __ res ______ preg ____ x ____________ ____________________ _____ ___________ mx ___________ suf ____ y ___________ ____________________ _____ ___ _
res __________ _________________________ __ res ______ pre ____ x ____________ ____________________ _____ ___________ mx ___________ suff ____ y ___________ ____________________ _____ ___ _
res __________ _________________________ __ res ______ pre ____ x ____________ ____________________ _____ ____________ mn ___________ sufg ____ y ___________ ____________________ _____ ___ _
res __________ _________________________ __ res ______ pref ____ x ____________ ____________________ _____ ___________ suff ____ y ___________ ____________________ _____ ___ _
res __________ _________________________ __ res ______ preg ____ x ____________ ____________________ _____ ___________ sufg ____ y ___________ ____________________ _____ ___ _
________________________________ ______________ res ______________ " " _
________
________
________________________________ ______________ "\n" _
// cout << preg[2] + sufg[4];
________
signed _________________________________ __ ___
_______
read __ ___ _
________________ subtask _
_______________________________ _____________ subtask _
solve __ ___ _
_____________________________________ ___________________ _
________