#include <iostream>
#include <fstream>
using namespace std;
ifstream l("cautbin.in");
ofstream g("cautbin.out");
int bin(int v[1001], int x, int s, int f, int p)
{
if (s <= f) {
if(x==v[(s+f)/2])
{
p=(s+f)/2;
}
if(x<v[(s+f)/2])
{
return bin(v, x, s, (s+f)/2-1, p);
}
else
{
return bin(v, x, (s+f)/2+1, f, p);
}
}
return p;
}
int bin1(int v[1001], int x, int s, int f, int p)
{
if (s <= f) {
if(x==v[(s+f)/2])
{
p=(s+f)/2;
}
if(x<v[(s+f)/2])
{
return bin1(v, x, s, (s+f)/2-1, p);
}
else
{
return bin1(v, x, (s+f)/2+1, f, p);
}
}
if(p!=-1)
{
return p;
}
else
{
return f;
}
}
int bin2(int v[1001], int x, int s, int f, int p)
{
if (s <= f) {
if(x==v[(s+f)/2])
{
p=(s+f)/2;
}
if(x>v[(s+f)/2])
{
return bin2(v, x, (s+f)/2+1, f, p);
}
else
{
return bin2(v, x, s, (s+f)/2-1, p);
}
}
if(p!=-1)
{
return p;
}
else
{
return s;
}
}
int main()
{
int n, v[1001], s=1, f, x, m, o, p;
l>>n;
f=n;
for(int i=1; i<=n; i++)
{
l>>v[i];
}
l>>m;
while(m)
{
l>>o>>x;
if(o==0)
{
g<<bin(v, x, s, f, -1)<<'\n';
}
else if(o==1)
{
g<<bin1(v, x, s, f, -1)<<'\n';
}
else
{
g<<bin2(v, x, s, f, -1)<<'\n';
}
m--;
}
return 0;
}