#include <iostream>
#include <fstream>
using namespace std;
int a[100000],n,m,i,j,x;
short int val;
int binrec(int a[100000], int x, int i,int j)
{
if (i==j) return i;
int k=(i+j+1)/2;
if (a[k]>x) return binrec(a,x,i,k-1);
else {return binrec(a,x,k,j);};
}
int binrec2(int a[100000], int x, int i,int j)
{
if (i==j) return i;
int k=(i+j)/2;
if (x<=a[k]) return binrec2(a,x,i,k);
else {return binrec2(a,x,k+1,j);};
}
int main()
{
freopen("cautbin.in","r",stdin);
freopen("cautbin.out","w",stdout);
scanf("%d",&n);
for (i=1;i<=n;i++) {scanf("%d",&a[i]);};
scanf("%d",&m);
while (m--)
{ scanf("%d%d",&val,&x);
if (val==0) {
if (a[binrec(a,x,1,n)]==x)
cout<<binrec(a,x,1,n);
else cout << -1;
};
if (val==1) {
cout<<binrec(a,x,1,n);
};
if (val==2) {
cout << binrec2(a,x,1,n);
};
if (m>0) cout<<"\n";
}
return 0;
}