#include <stdio.h>
#define L 16
int v[100001],n,x;
int r0(){
int i,pas;
i=0;
pas=1<<L;
while(pas!=0){
if(i+pas<=n && v[i+pas]<=x)
i+=pas;
pas/=2;
}
if(v[i]==x)
return i;
return -1;
}
int r1(){
int i,pas;
i=0;
pas=1<<L;
while(pas!=0){
if(i+pas<=n && v[i+pas]<=x)
i+=pas;
pas/=2;
}
return i;
}
int r2(){
int i,pas;
i=0;
pas=1<<L;
while(pas!=0){
if(i+pas<=n && v[i+pas]<x)
i+=pas;
pas/=2;
}
return i+1;
}
int main(){
FILE *fin=fopen("cautbin.in","r");
FILE *fout=fopen("cautbin.out","w");
int i,m,tip;
fscanf(fin,"%d",&n);
for(i=1; i<=n; i++)
fscanf(fin,"%d",&v[i]);
fscanf(fin,"%d",&m);
for(i=1; i<=m; i++){
fscanf(fin,"%d%d",&tip,&x);
if(tip==0)
fprintf(fout,"%d\n",r0());
else if(tip==1)
fprintf(fout,"%d\n",r1());
else
fprintf(fout,"%d\n",r2());
}
fclose(fin);
fclose(fout);
return 0;
}