#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("cautbin.in");
ofstream out ("cautbin.out");
int cb0(int s, int d, int x, int v[])
{
int m;
m=(s+d+1)/2;
if(s==d)
return s;
else if(x>=v[m]) return cb0(m, d, x, v);
else if(x<v[m]) return cb0(s, m-1, x, v);
}
int cb1(int s, int d, int x, int v[])
{
int m;
m=(s+d+1)/2;
if(s==d)
{
return s;
}
if(x>=v[m]) return cb1(m, d, x, v);
else return cb1(s, m-1, x, v);
}
int cb2(int s, int d, int x, int v[])
{
int m;
m=(s+d)/2;
if(s==d)
{
return s;
}
if(x<=v[m]) return cb2(s, m, x, v);
else return cb2(m+1, d, x, v);
}
int v[100000];
int main()
{
int n, m, i, x, c, p;
in>>n;
for(i=1; i<=n; i++)
in>>v[i];
in>>m;
for(i=1;i<=m;i++)
{
in>>c>>x;
if(c==0)
{
p=cb0(1, n, x, v);
if(x!=v[p]) out<<-1<<endl;
else out<<p<<endl;
}
if(c==1) out<<cb1(1, n, x, v)<<endl;
if(c==2) out<<cb2(1, n, x, v)<<endl;
}
return 0;
}