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