#include <cstdio>
using namespace std;
const int NMAX = 100010;
int N, M, V[NMAX], Type, X;
int main()
{
freopen("cautbin.in", "r", stdin);
freopen("cautbin.out", "w", stdout);
scanf("%i", &N);
for(int i = 1; i <= N; ++ i) scanf("%i", &V[i]);
scanf("%i", &M);
for(; M; M --)
{
scanf("%i %i", &Type, &X);
if(Type <= 1)
{
int Left = 1, Right = N, Mid, Pos;
while(Left <= Right)
{
Mid = (Left + Right) / 2;
if(V[Mid] <= X) Pos = Mid, Left = Mid + 1;
else Right = Mid - 1;
}
if(Type == 0) printf("%i\n", (V[Pos] == X ? Pos : -1));
else printf("%i\n", Pos);
}else
{
int Left = 1, Right = N, Mid, Pos;
while(Left <= Right)
{
Mid = (Left + Right) / 2;
if(V[Mid] >= X) Pos = Mid, Right = Mid - 1;
else Left = Mid + 1;
}
printf("%i\n", Pos);
}
}
}