#include <fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int v[100010],i,n,m,x,a,val;
int q1(int val)
{
int i=0,step;
for(step=1;step<=n;step<<=1);
for(i=0;step;step>>=1)
if(i+step<=n && v[i+step]<=val)
i+=step;
return i;
}
int q2(int val)
{
int i,step;
for(step=1;step<=n;step<<=1);
for(i=0;step;step>>=1)
if(i+step<=n && v[i+step]<val)
i+=step;
return i+1;
}
int q0(int val)
{
int i,step;
for(step=1;step<=n;step<<=1);
for(i=0;step;step>>=1)
if(i+step<=n && v[i+step]<=val)
i+=step;
if(v[i]==val)
return i;
else
return -1;
}
int main()
{
fin>>n;
for(i=1;i<=n;i++)
fin>>v[i];
fin>>m;
while(fin>>x)
{
if(x==0)
{
fin>>val;
fout<<q0(val)<<'\n';
}
if(x==1)
{
fin>>val;
fout<<q1(val)<<'\n';
}
if(x==2)
{
fin>>val;
fout<<q2(val)<<'\n';
}
}
return 0;
}