#include<fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int s(int start,int end,int x,int v[100])
{
if(start>end)
return -1;
int mid=(start+end)/2;
if(v[mid]==x)
{
while(v[mid]==x)
mid++;
mid--;
return mid;
}
if(v[mid]>x)
return s(1,mid-1,x,v);
if(v[mid]<x)
return s(mid+1,end,x,v);
}
int d(int start,int end,int x,int v[100])
{
if(start>end)
return -1;
int mid=(start+end)/2;
if(v[mid]>=x)
{
while(v[mid]>x)
mid--;
mid++;
return mid;
//return s(1,mid-1,x,v);
}
if(v[mid]<x)
return s(mid+1,end,x,v);
}
int q(int start,int end,int x,int v[100])
{
if(start>end)
return -1;
int mid=(start+end)/2;
if(v[mid]>x)
{
return s(1,mid-1,x,v);
}
if(v[mid]<=x)
{
while(v[mid]>x)
mid++;
mid--;
return mid;
}
}
int main()
{
int n,i,v[100],x,t,m,a;
f>>n;
for(i=1;i<=n;i++)
f>>v[i];
f>>m;
for(i=1;i<=m;i++)
{
f>>t>>x;
a=s(1,n,x,v);
if(t==0)
{
g<<a<<'\n';
}
if(t==1)
{
g<<d(1,n,x,v)<<'\n';
}
if(t==2)
{
g<<q(1,n,x,v)<<'\n';
}
}
f.close();
g.close();
return 0;
}