#include<bits/stdc++.h>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int BinarySearch(vector<int> &v, int x,int left, int right){
int mid;
if(left<right){
mid=(left+right)/2;
if(x==v[mid])
return mid;
else if(x<v[mid]){
return BinarySearch(v,x,left,mid-1);
}
return BinarySearch(v,x,mid+1,right);
}
return -1;
}
int BinarySearchMinEl(vector<int> &v,int x, int left, int right){
if(left<right){
int mid=(left+right)/2;
if(x<=v[mid]){
return BinarySearchMinEl(v,x,left,mid-1);
}
else if(x>v[mid]) {
if(v[mid+1]==x){
return mid;
}
else{
return BinarySearchMinEl(v,x,mid+1,right);
}
}
}
}
int BinarySearchMaxEl(vector<int> &v, int x,int left, int right){
if(left<right){
int mid=(left+right)/2;
if(x>=v[mid])
return BinarySearchMaxEl(v,x,mid+1,right);
else if(x<v[mid]){
if(x==v[mid-1])
return mid;
else{
return BinarySearchMaxEl(v,x,left,mid-1);
}
}
}
}
int main(){
vector<int> v;
int i,j,n,a,x,m,tip;
f>>n;
for(i=0;i<n;++i){
f>>a;
v.push_back(a);
}
f>>m;
for(i=0;i<m;++i){
f>>tip>>x;
if(tip==0){
a=BinarySearch(v,x,0,v.size()-1);
if(a==-1){
g<<-1<<'\n';
}
else{
for(j=a+1;j<v.size();++j){
if(v[j]!=x)
g<<j-1+1<<'\n';
}
}
}
else if(tip==1){
a=BinarySearch(v,x,0,v.size()-1);
if(a==-1)
g<<BinarySearchMinEl(v,x,0,v.size()-1)+1<<'\n';
else{
for(j=a+1;j<v.size();++j){
if(v[j]!=x)
g<<j-1+1<<'\n';
}
}
}
else{
a=BinarySearch(v,x,0,v.size()-1);
if(a==-1)
g<<BinarySearchMaxEl(v,x,0,v.size()-1)+1<<'\n';
else{
for(j=a-1;j>=0;--j){
if(v[j]!=x)
g<<j+1+1<<'\n';
}
}
}
}
return 0;
}