#include <stdio.h>
#include <stdlib.h>
int cautare(int v[100001], int x, int first, int last)
{
if (first == last && x != v[first])
return -1;
if (first == last)
return first;
int mid = first + (last - first)/2;
if (v[mid] == x)
return mid;
else
{
if (v[mid] < x)
return cautare(v, x, mid + 1, last);
else
return cautare(v, x, first, mid - 1);
}
}
int f0(int v[100001], int x, int n)
{
int poz = cautare(v, x, 0, n-1);
if (poz == -1)
return -1;
while (v[poz] == v[poz + 1])
{
poz ++;
}
return poz + 1;
}
int f1(int v[100001], int x, int n)
{
int poz = cautare(v, x, 0, n-1);
while (v[poz] == v[poz + 1])
poz ++;
return poz + 1;
}
int f2(int v[100001], int x, int n)
{
int poz = cautare(v, x, 0, n-1);
while (v[poz] == v[poz - 1])
poz --;
return poz + 1;
}
int main()
{
int v[100001];
int n,m;
FILE * f = fopen("cautbin.in","r");
fscanf(f, "%i", &n);
int i;
for (i = 0; i < n; i++)
{
fscanf(f, "%i", v + i);
}
fscanf(f, "%i", &m);
int tip, x;
FILE * g = fopen("cautbin.out", "w");
for (i = 0; i < m; i++)
{
fscanf(f, "%i%i", &tip, &x);
if (tip == 0)
fprintf(g, "%i\n", f0(v, x, n));
if (tip == 1)
fprintf(g, "%i\n", f1(v, x, n));
if (tip == 2)
fprintf(g, "%i\n", f2(v, x, n));
}
fclose(f);
fclose(g);
return 0;
}