#include <bits/stdc++.h>
using namespace std;
int bs(int x, vector< int > &v) {
int best = 0;
for(int step = 20; step >= 0; --step) {
if(best+(1<<step) < v.size() && v[best+(1<<step)] <= x) best += (1<<step);
}
return best;
}
int main() {
#ifdef BLAT
freopen("input", "r", stdin);
#else
freopen("cautbin.in", "r", stdin);
freopen("cautbin.out", "w", stdout);
#endif
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n;
cin >> n;
vector< int > v(n + 1);
for(int i = 1; i <= n; ++i) cin >> v[i];
int m;
cin >> m;
for(int i = 0; i < m; ++i) {
int t, x;
cin >> t >> x;
if(t == 0) {
int k = bs(x, v);
if(v[k] == x) cout << k << '\n';
else cout << "-1\n";
}
if(t == 1) {
cout << bs(x, v) << '\n';
}
if(t == 2) {
cout << bs(x-1, v) + 1 << '\n';
}
}
return 0;
}