#include<iostream>
#include<cstdio>
#include<algorithm>
#include<vector>
#define int long long
using std::cin;using std::cout;
constexpr int N=1000006,mod=317847191;
int n,m,x[N],mul=1,ans[N],minn,maxn;
char c[N];
std::vector<int>a;
inline int qpow(int a,int b,int mod,int t=1){for(;b;b>>=1,a=a*a%mod)if(b&1)t=t*a%mod;return t;}
signed main(){
std::ios::sync_with_stdio(false);
cin.tie(nullptr);cout.tie(nullptr);
cin>>n>>m;
for(int i=1;i<=n;++i) cin>>x[0],a.push_back(x[0]);
std::sort(a.begin(),a.end());
for(int i=1;i<=m;++i){
cin>>c[i];
if(c[i]=='D'){
cin>>x[i];
a.erase(std::lower_bound(a.begin(),a.end(),x[i]));
}
}
for(auto i:a) mul=mul*i%mod;
minn=*a.begin();maxn=*(--a.end());
for(int i=m;i>=1;--i){
if(c[i]=='D'){
mul=mul*x[i]%mod;
minn=std::min(x[i],minn);
maxn=std::max(x[i],maxn);
}else if(c[i]=='B'){
ans[i]=maxn;
}else if(c[i]=='S'){
ans[i]=minn;
}else if(c[i]=='M'){
ans[i]=qpow(maxn,minn,mod);
}else if(c[i]=='T'){
ans[i]=mul;
}else{
ans[i]=11451411919810;
}
}
for(int i=1;i<=m;++i)
if(c[i]!='D')
cout<<ans[i]<<'\n';
return 0;
}