#include <fstream>
#define nmax 1000
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int N, v[nmax], M;
int cautareBinara(int x, int cerinta){
int i, S;
for(S = 1 ; S <= N ; S <<= 1);
i = 0;
while(S){
if(v[S + i] <= x && S + i <= N)
i += S;
S >>= 1;
}
switch (cerinta){
case 0 : {if(v[i] == x) return i; return -1;} break;
case 1 : {return i;} break;
case 2 : {
if(v[i] == x){ while(v[i] == x) --i; return i + 1;}
return i + 1;
}
}
}
int main()
{int i, nr, c;
f>>N;
for(i = 1; i <= N; ++i)
f>>v[i];
f>>M;
for(i = 1; i <= M; ++i){
f>>c>>nr;
g<<cautareBinara(nr, c)<<'\n';
}
return 0;
}