#include <stdio.h>
#include <stdlib.h>
FILE *fin , *fout;
int v[100000];
int cb0(int st,int dr,int e) {
int mij;
while(dr-st>1) {
mij=(st+dr)/2;
if(e<v[mij]) {
dr=mij;
}
else {
st=mij;
}
}
return st;
}
int cb1(int st,int dr,int e,int n) {
int mij;
while(dr-st>1) {
mij=(st+dr)/2;
if(e<v[mij]) {
dr=mij;
}
else {
st=mij;
}
}
if(v[st]==e) {
return st;
}
else {
int i=st+2;
while(i<n && v[i]==v[st+1]) {
i++;
}
return i-1;
}
}
int cb2(int st,int dr,int e) {
int mij,r=-1;
while(st<=dr) {
mij=(st+dr)/2;
if(v[mij]<e) {
st=mij+1;
}
else {
dr=mij-1;
if(v[mij]==e) {
r=mij;
}
}
}
if(r!=-1) {
return r;
}
else {
return st;
}
}
int main() {
fin=fopen("cautbin.in","r");
fout=fopen("cautbin.out","w");
int n,i,m,a,x,poz;
fscanf(fin,"%d",&n);
for(i=0;i<n;i++) {
fscanf(fin,"%d",&v[i]);
}
fscanf(fin,"%d",&m);
for(i=0;i<m;i++) {
fscanf(fin,"%d%d",&a,&x);
if(a==0) {
poz=cb0(0,n,x);
if(v[poz]==x) {
fprintf(fout,"%d\n",poz+1);
}
else {
fprintf(fout,"-1\n");
}
}
else {
if(a==1) {
fprintf(fout,"%d\n",cb1(1,n,x,n)+1);
}
else {
fprintf(fout,"%d\n",cb2(1,n,x)+1);
}
}
}
fclose(fin);
fclose(fout);
return 0;
}