#include <stdio.h>
#include <limits.h>
using namespace std;
int n,i,p,x,v[100001],m,r;
int cautare1(int a,int b,int x)
{
if (a==b) return a;
else
{
int m=(a+b)>>1;
if (v[m]<=x) return cautare1(m+1,b,x);
else return cautare1(a,m,x);
}
}
int cautare3(int a,int b,int x)
{
if (a==b) return a;
else
{
int m=(a+b)>>1;
if (v[m]<x) return cautare3(m+1,b,x);
else return cautare3(a,m,x);
}
}
int main()
{
freopen ("cautbin.in","r",stdin);
freopen ("cautbin.out","w",stdout);
scanf("%i",&n);
for (i=1;i<=n;i++) scanf("%i",&v[i]);
scanf("%i",&m);
v[n+1]=INT_MAX;
for (i=1;i<=m;i++)
{
scanf("%i%i",&p,&x);
if (p==0)
{
r=cautare1(1,n+1,x);
if (v[r-1]==x) printf("%i\n",r-1);
else printf("-1\n");
}
else if (p==1) printf("%i\n",cautare1(1,n+1,x)-1);
else printf("%i\n",cautare3(1,n,x));
}
fclose(stdin);
fclose(stdout);
return 0;
}