#include <fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int n,a[100001],i,ex,v,m,x;
int cautMaxiN(int v);
int cautMaxim(int v);
int cautMinim(int v);
int main()
{
fin>>n;
for(i=1;i<=n;i++)
{
fin>>x;
a[i]=x;
// fout<<a[i];
}
fin>>m;
for(i=1;i<=m;i++)
{
fin>>ex>>v;
if(ex==0)
{
fout<<cautMaxiN(v)<<'\n';
}
if(ex==1)
{
fout<<cautMaxim(v)<<'\n';
}
if(ex==2)
{
fout<<cautMinim(v)<<'\n';
}
}
}
int cautMaxiN(int x)
{
int p=1,u=n,mid;
while(p<=u)
{
mid=(p+u)/2;
if(x>=a[mid])
{
p=mid+1;
}
else
{
u=mid-1;
}
}
if(x==a[u])
return u;
else
return -1;
}
int cautMaxim(int x)
{
int p=1,u=n,mid;
while(p<=u)
{
mid=(p+u)/2;
if(x>=a[mid])
{
p=mid+1;
}
else
{
u=mid-1;
}
}
return u;
}
int cautMinim(int x)
{
int p=1,u=n,mid;
while (p<=u)
{
mid=(p+u)/2;
if (x<=a[mid])
{
u=mid-1;
}
else
{
p=mid+1;
}
}
return p;
}