#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream cin("cautbin.in");
ofstream cout("cautbin.out");
int n,m,i,a,b;
int main()
{
cin>>n;
vector<int>x(n);
for(auto &e : x) cin>>e;
cin>>m;
for(i=1;i<=m;i++)
{
cin>>a>>b;
if(a==0)
{
auto upb=upper_bound(x.begin(), x.end(), b);
if(upb-x.begin() != 0 && x[upb-x.begin()-1]==b) cout<<upb-x.begin()<<"\n";
else cout<<"-1\n";
}
if(a==1)
{
auto upb2=upper_bound(x.begin(), x.end(), b);
cout<<upb2-x.begin()<<"\n";
}
if(a==2)
{
auto upb3=upper_bound(x.begin(), x.end(), b-1);
cout<<upb3-x.begin()+1<<"\n";
}
}
return 0;
}