#include <stdio.h>
#include <algorithm>
using namespace std;
FILE *f=fopen("cautbin.in","r");
FILE *g=fopen("cautbin.out","w");
long x,y,n,v[100001],nr,m,t,i;
int main()
{
fscanf(f,"%ld",&n);
for (i=1;i<=n;i++)
fscanf(f,"%ld",&v[i]);
fscanf(f,"%ld",&m);
for (i=1;i<=m;i++)
{
fscanf(f,"%ld%ld",&t,&x);
if (t==0)
{
nr=upper_bound(v+1,v+n+1,x)-v-1;
if (v[nr]==x)
fprintf(g,"%ld",nr);
else
fprintf(g,"-1");
fprintf(g,"\n");
}
else if (t==1)
{
nr=upper_bound(v+1,v+n+1,x)-v-1;
fprintf(g,"%ld\n",nr);
}
else
{
nr=lower_bound(v+1,v+n+1,x)-v;
fprintf(g,"%ld",nr);
}
}
fclose(f);
return 0;
}