#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int V[100005];
int N, M, t, y;
int main()
{
fin >> N;
for(int i = 1; i <= N; ++i)
fin >> V[i];
sort(V + 1, V + N + 1);
fin >> M;
for(int i = 0; i < M; ++i) {
fin >> t >> y;
if(t == 0) {
int upp = upper_bound(V + 1, V + N + 1, y) - V - 1;
if(upp <= N && upp >= 1 && V[upp] == y)
fout << upp << "\n";
else
fout << "-1\n";
}
else if(t == 1) {
int upp = upper_bound(V + 1, V + N + 1, y+1) - V - 1;
fout << upp << "\n";
}
else {
int low = lower_bound(V + 1, V + N + 1, y-1) - V ;
fout << low << "\n";
}
}
}