#include <iostream>
#include <fstream>
using namespace std;
int cautare_binara(int st,int dr, int a[],int k){
if (st>dr)
return -1;
int mij=(st+dr)/2;
if (a[mij]==k && a[mij+1]!=k){
return mij;
}
if (a[mij]<k)
return cautare_binara(mij+1,dr,a,k);
if (a[mij]>k)
return cautare_binara(st,mij-1,a,k);
if (a[mij]==k && a[mij+1]==k)
return cautare_binara(mij,dr,a,k);
}
int cautare_binara2(int st,int dr, int a[],int k){
if (st>dr)
return -1;
int mij=(st+dr)/2;
if (a[mij]==k && a[mij-1]!=k){
return mij;
}
if (a[mij]<k)
return cautare_binara(mij+1,dr,a,k);
if (a[mij]>k)
return cautare_binara(st,mij-1,a,k);
if (a[mij]==k && a[mij-1]==k)
return cautare_binara2(st,mij,a,k);
}
int main()
{
int n, a[100001],m,intrebare,nr,i;
ifstream f ("cautbin.in");
ofstream g ("cautbin.out");
f>>n;
for (i=1;i<=n;i++)
{
f>>a[i];
}
f>>m;
for (i=1;i<=m;i++)
{
f>>intrebare>>nr;
if (intrebare==0)
{
g<<cautare_binara(1,n,a,nr)<<"\n";
}
if (intrebare==1)
{
g<<cautare_binara(1,n,a,nr)<<"\n";
}
if (intrebare==2)
{
g<<cautare_binara2(1,n,a,nr)<<"\n";
}
}
return 0;
}