#include <iostream>
#include <fstream>
#define Nmax 100000
using namespace std;
ifstream fi("cautbin.in");
ofstream fo("cautbin.out");
unsigned int v[Nmax];
int c2(int lo,unsigned int x, int hi)
{
int mid = lo + (hi-lo)/2;
do
{
if(v[mid] <= x)
{
lo = mid +1;
}
else hi = mid-1;
mid = lo + (hi-lo)/2;
}
while(v[hi] > x );
return hi;
}
int c1(int lo, unsigned int x, int hi)
{
int mid = lo + (hi-lo)/2;
if(hi < lo) return -1;
if(v[mid] == x) {
return c2(mid,x,hi);
}
else if(v[mid] > x) return c1(lo,x,mid-1);
else if(v[mid] < x) return c1(mid+1,x,hi);
return mid;
}
int c3(int lo,unsigned int x, int hi)
{
int mid = lo + (hi-lo)/2;
do
{
if(v[mid] < x )
{
lo = mid+1;
}
else hi = mid-1;
mid = lo + (hi-lo)/2;
}
while(v[lo] < x );
return lo;
}
int caut(int a,unsigned int b,int n)
{
if(a == 0) return c1(1,b,n);
if(a == 1) return c2(1,b,n);
if(a == 2) return c3(1,b,n);
}
int main()
{
int n;
fi >> n;
for(int i = 1; i <= n; i ++)
{
fi >> v[i];
}
int m;
fi >> m;
for(int i = 0; i < m; i ++)
{
int a;
unsigned int b;
fi >> a >> b;
fo <<caut(a,b,n) << '\n';
}
fi.close();
fo.close();
return 0;
}