#include <iostream>
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int v[100000], n;
int zero(int s, int d, int x)
{
int mij, poz = -1;
bool ok = 0;
while(s <= d)
{
mij = s + (d - s)/2;
if(x == v[mij])
{
poz = mij;
break;
}
else if(x < v[mij])
d = mij - 1;
else
s = mij + 1;
}
while(v[poz] == x)
poz++;
return poz - 1;
}
int unu(int s, int d, int x)
{
int mij, poz = -1;
while(s <= d)
{
mij = s + (d - s)/2;
if(x == v[mij])
{
poz = mij;
break;
}
else if(x < v[mij])
d = mij - 1;
else
s = mij + 1;
}
if(s < d)
while(v[poz] == v[poz + 1])
poz++;
else
poz = d;
return poz;
}
int doi(int s, int d, int x)
{
int mij, poz = -1;
while(s <= d)
{
mij = s + (d - s)/2;
if(v[mij] == x)
{
poz = mij;
break;
}
else
if(x < v[mij])
d = mij - 1;
else
s = mij + 1;
}
if(s < d)
while(v[poz] == v[poz - 1])
poz--;
else
poz = s;
return poz;
}
int main()
{
int m, i, x, intreb;
f >> n;
v[0] = 0;
for(i = 1; i <= n; i++)
f >> v[i];
f >> m;
for(i = 0; i < m; i++)
{
f >> intreb >> x;
if(intreb == 0)
g << zero(1, n, x) << '\n';
else if(intreb == 1)
g << unu(1, n, x) << '\n';
else
g << doi(1, n, x) << '\n';
}
return 0;
}