#include<iostream>
#include<fstream>
using namespace std;
void two(int x, unsigned int numbers[],int left, int right, int &where){
int mid=left+(right-left)/2;
if(numbers[mid]>=x) where=mid;
if(left!=right)
if(x<=numbers[mid] && mid-1>=left) two(x,numbers,left,mid-1,where);
else if(right>=mid+1) two(x,numbers,mid+1,right,where);
}
void one(int x, unsigned int numbers[],int left, int right, int &where){
int mid=left+(right-left)/2;
if(numbers[mid]<=x) where=mid;
if(left!=right)
if(x>=numbers[mid] && mid+1<=right) one(x,numbers,mid+1,right,where);
else if(left<=mid-1) one(x,numbers,left,mid-1,where);
}
void zero(int x, unsigned int numbers[],int left, int right, int &where){
int mid=left+(right-left)/2;
if(numbers[mid]==x) where=mid;
if(left!=right)
if(x>=numbers[mid] && mid+1<=right) zero(x,numbers,mid+1,right,where);
else if(left<=mid-1) zero(x,numbers,left,mid-1,where);
}
int main(){
ifstream in; ofstream out;
in.open("cautbin.in"); out.open("cautbin.out");
int n,m,i,c,where;
in>>n;
unsigned int numbers[n],x;
for(i=0;i<n;i++) in>>numbers[i];
in>>m;
for(i=0;i<m;i++){
in>>c>>x;
if(c==0) { where=-2; zero(x,numbers,0,n-1,where); out<<where+1<<"\n";}
if(c==1) { where=-2; one(x,numbers,0,n-1,where); out<<where+1<<"\n";}
if(c==2) { where=-2; two(x,numbers,0,n-1,where); out<<where+1<<"\n";}
}
return 0;
}