#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> pii;
#define FI first
#define SE second
#define MP make_pair
#define PB push_back
#define PPB pop_back
#define FOREACH(it, v) for(auto it = v.begin(); it != v.end(); it++)
#define ALL(v) a.begin(), a.end()
#define FO(i, x, n) for(int i = x; i < n; ++i)
#define F0(i, n) for(int i = 0; i < n; ++i)
#define RF(i, n, k) for(int i = n-1; i >= k; --i)
#define FOI(i, x, n, in) for(int i = x; i < n; i += in)
#define RFOI(i, x, n, in) for(int i = x; i >= n; i -= in)
#define Sonic ios_base::sync_with_stdio(false), cin.tie(NULL), cout.tie(NULL);
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int RBS(vector<int> v, int l, int r, int x){
if(r >= l){
int mid = (l+r)/2;
if(v[mid] == x && v[mid+1] != x)
return mid;
if(v[mid] > x)
return RBS(v, l, mid-1, x);
return RBS(v, mid+1, r, x);
}
return -1;
}
int BS(vector<int> v, int l, int r, int x){
if(r >= l){
int mid = (l+r)/2;
if(v[mid] == x && v[mid-1] != x)
return mid;
if(v[mid] < x)
return BS(v, mid+1, r, x);
return BS(v, l, mid-1, x);
}
return -1;
}
int main()
{
Sonic;
int n, m, t, x;
fin >> n;
vector < int > v(n);
F0(i,n)
fin >> v[i];
fin >> m;
while(m--){
fin >> t >> x;
if(t == 0)
fout << RBS(v, 0, n-1, x) + 1 << endl;
if(t == 1){
while(RBS(v, 0, n-1, x) == -1)
x--;
fout << RBS(v, 0, n-1, x) + 1 << endl;
}
if(t == 2){
while(BS(v, 0, n-1, x) == -1)
x++;
fout << BS(v, 0, n-1, x) + 1 << endl;
}
}
return 0;
}