#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int n;
void cautbin(int s,int d,int x,int v[100001])
{
int mij;
if(s>d)
g<<"-1";
else
{
mij=(s+d)/2;
if(x>v[mij])
cautbin(mij+1,d,x,v);
else
if(x<v[mij])
cautbin(s,mij-1,x,v);
else
if(x==v[mij]&&v[mij+1]!=x)
g<<mij;
else
if(x==v[mij]&&v[mij+1]==x)
cautbin(mij+1,d,x,v);
}
}
void cautbin2(int s,int d,int x,int v[100001])
{
int mij;
if(s>d)
cautbin2(1,n,x-1,v);
else
{
mij=(s+d)/2;
if(x>v[mij])
cautbin2(mij+1,d,x,v);
else
if(x<v[mij])
cautbin2(s,mij-1,x,v);
else
if(x==v[mij]&&v[mij+1]!=x)
g<<mij;
else
if(x==v[mij]&&v[mij+1]==x)
cautbin2(mij+1,d,x,v);
}
}
void cautbin3(int s,int d,int x,int v[100001])
{
int mij;
if(s>d)
cautbin3(1,n,x+1,v);
else
{
mij=(s+d)/2;
if(v[mij]>x)
cautbin3(s,mij-1,x,v);
else
if(v[mij]<x)
cautbin3(mij+1,d,x,v);
else
if(x==v[mij]&&v[mij-1]!=x)
g<<mij;
else
cautbin3(s,mij-1,x,v);
}
}
int main()
{
int i,v[100001],c[100001],m;
f>>n;
for(i=1;i<=n;i++)
f>>v[i];
f>>m;
for(i=1;i<=m*2;i=i+2)
f>>c[i]>>c[i+1];
for(i=1;i<=m*2;i=i+2)
{
if(c[i]==0)
{
cautbin(1,n,c[i+1],v);
g<<'\n';
}
else
if(c[i]==1)
{
cautbin2(1,n,c[i+1],v);
g<<'\n';
}
else
if(c[i]==2)
{
cautbin3(1,n,c[i+1],v);
g<<'\n';
}
}
return 0;
}