#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
int n,m;
int dis[N],vis[N],f[N],ls[N],rs[N],v[N];
int find(int x){return f[x]==x?x:f[x]=find(f[x]);}
int merge(int x,int y){
if(!x||!y)return x+y;
if(v[y]<v[x])swap(x,y);
rs[x]=merge(rs[x],y);
if(dis[ls[x]]<dis[rs[x]])swap(ls[x],rs[x]);
dis[x]=dis[rs[x]]+1;
return x;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++)scanf("%d",&v[i]),f[i]=i;
cin>>m;
while(m--){
char op;int x,y;getchar();
op=getchar();
if(op=='M'){
scanf("%d%d",&x,&y);
if(vis[x]||vis[y])continue;
x=find(x),y=find(y);
if(x!=y)f[x]=f[y]=merge(x,y);
}else{
scanf("%d",&x);
if(vis[x]){printf("0\n");continue;}
x=find(x);
printf("%d\n",v[x]);
vis[x]=1;
f[ls[x]]=f[rs[x]]=f[x]=merge(ls[x],rs[x]);
ls[x]=rs[x]=dis[x]=0;
}
}
return 0;
}