#include <cstdio>
#include <vector>
using namespace std;
vector <int> v;
int _0(int li,int lf,int x)
{
int m;
while(li<=lf)
{
m=li+(lf-li)/2;
if(x<v[m])
lf=m-1;
else li=m+1;
}
if(li<1 || v[li-1]!=x)
return -1;
return li;
}
int _1(int li,int lf,int x)
{
int m;
while(li<=lf)
{
m=li+(lf-li)/2;
if(x<v[m])
lf=m-1;
else li=m+1;
}
return li;
}
int _2(int li,int lf,int x)
{
int m;
while(li<=lf)
{
m=li+(lf-li)/2;
if(x<v[m])
lf=m-1;
else li=m+1;
}
return lf+1;
}
int main()
{
FILE *f=fopen("cautbin.in","r");
FILE *g=fopen("cautbin.out","w");
int n,m,y,nr,x;
fscanf(f,"%d",&n);
int i;
for(i=1;i<=n;i++)
{
fscanf(f,"%d",&y);
v.push_back(y);
}
fscanf(f,"%d",&m);
for(i=1;i<=m;i++)
{
fscanf(f,"%d%d",&nr,&x);
if(nr==0) fprintf(g,"%d\n",_0(1,n,x));
if(nr==1) fprintf(g,"%d\n",_1(1,n,x));
if(nr==2) fprintf(g,"%d\n",_2(1,n,x));
}
return 0;
}