#include <stdio.h>
#include <stdlib.h>
FILE *fin , *fout;
int v[100000];
int main() {
fin=fopen("cautbin.in","r");
fout=fopen("cautbin.out","w");
int n,m,i,a,e,pos,step,stinga,dreapta,mijloc;
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,&e);
if(a==0) {
pos=-1;
step=1<<20;
while(step>0) {
if(pos+step<n && v[pos+step]<=e) {
pos+=step;
}
step/=2;
}
if(pos!=-1 && v[pos]==e) {
fprintf(fout,"%d\n",pos+1);
}
else {
fprintf(fout,"-1\n");
}
}
else if(a==1) {
stinga=0;
dreapta=n;
while (dreapta-stinga>1) {
mijloc=(stinga+dreapta)/2;
if (v[mijloc]>e)
dreapta=mijloc;
else
stinga=mijloc;
}
fprintf(fout,"%d\n",stinga+1);
}
else if(a==2) {
stinga=0;
dreapta=n;
while (dreapta-stinga>1) {
mijloc=(stinga+dreapta)/2;
if (v[mijloc]<=e)
dreapta=mijloc;
else
stinga=mijloc;
}
fprintf(fout,"%d\n",dreapta+1);
}
}
fclose(fin);
fclose(fout);
return 0;
}