#include<bits/stdc++.h>
using namespace std;
const int N=100001;
struct fhq_treap
{
int val,pri;
int size;
int l,r;
}tr[N];
int root1,root2;
int root[N];
int num;
int n,m;
int fa[N];
int ord[N];
int create(int x)
{
tr[++num].size=1;
tr[num].pri=rand();
tr[num].val=x;
return num;
}
void init()
{
for(int i=1;i<=n;i++)
{
fa[i]=i;
}
}
int get(int x)
{
if(x==fa[x])return x;
return fa[x]=get(fa[x]);
}
void pushup(int id)
{
tr[id].size=tr[tr[id].l].size+tr[tr[id].r].size+1;
return;
}
void split_tree(int id,int val,int &l,int &r)
{
if(id==0)
{
l=r=0;
return;
}
if(tr[id].val<=val)
{
l=id;
split_tree(tr[id].r,val,tr[id].r,r);
}
else
{
r=id;
split_tree(tr[id].l,val,l,tr[id].l);
}
pushup(id);
return;
}
int merge_tree(int l,int r)
{
if(l==0 || r==0)return l+r;
if(tr[l].pri<tr[r].pri)
{
tr[l].r=merge_tree(tr[l].r,r);
pushup(l);
return l;
}
else
{
tr[r].l=merge_tree(l,tr[r].l);
pushup(r);
return r;
}
}
void insert(int &rt,int id)
{
split_tree(rt,tr[id].val,root1,root2);
rt=merge_tree(merge_tree(root1,id),root2);
return;
}
void Merge(int &T1,int T2)//将T2合并至T1
{
if(tr[T2].l!=0)Merge(T1,tr[T2].l);
if(tr[T2].r!=0)Merge(T1,tr[T2].r);
insert(T1,T2);
}
int query(int id,int rk)
{
if(id==0)return -1;
if(tr[tr[id].l].size+1==rk)
{
return tr[id].val;
}
if(tr[tr[id].l].size+1<rk)
{
return query(tr[id].r,rk-tr[tr[id].l].size-1);
}
if(tr[tr[id].l].size+1>rk)
{
return query(tr[id].l,rk);
}
}
int main()
{
cin>>n>>m;
init();
int x,y;
for(int i=1;i<=n;i++)
{
cin>>x;
ord[x]=i;
root[i]=create(x);
}
for(int i=1;i<=m;i++)
{
cin>>x>>y;
x=get(x);
y=get(y);
if(x!=y)
{
if(tr[root[y]].size<tr[root[x]].size)
{
swap(x,y);
}
//tr[y].size>tr[x].size 让x合并到y里
fa[x]=y;
Merge(root[y],root[x]);//将x合并至y
}
}
int q;
cin>>q;
for(int apple=1;apple<=q;apple++)
{
cout<<apple<<endl;
char op;
cin>>op;
if(op=='Q')
{
int x,k;
cin>>x>>k;
if(tr[root[get(x)]].size<k)cout<<-1<<endl;
else cout<<ord[query(root[get(x)],k)]<<endl;;
}
if(op=='B')
{
int x,y;
cin>>x>>y;
x=get(x);
y=get(y);
if(x!=y)
{
if(tr[root[y]].size<tr[root[x]].size)
{
swap(x,y);
}
fa[x]=y;
Merge(root[y],root[x]);//将x合并至y
}
}
}
return 0;
}