#include <stdio.h>
#include <stdlib.h>
FILE *f,*g;
void met1(int v[],int x,int n)
{
int poz = 0, pas = 1<<30;
while (pas>>=1)
if (poz+pas<n && v[poz+pas]<=x)
poz += pas;
if ((poz<n) && (poz>-1))
fprintf(g,"%d\n",poz+1);
if ((poz == 0) && (v[0]!=x))
fprintf(g,"-1");
if ((poz == n-1) && (v[n-1]!=x))
fprintf(g,"-1");
}
void met2(int v[],int n,int x)
{
int poz = 0, pas = 1<<30;
while (pas >>= 1)
{
if(pas+poz<n && v[pas+poz]<=x)
poz += pas;
}
if (poz == n-1)
if (v[n-1] == x)
fprintf(g,"%d\n",n);
else
fprintf(g,"%d\n",n-1);
if (poz == 1)
if (v[1] == x)
fprintf(g,"2\n");
else
fprintf(g,"1\n");
if ((poz !=1) && (poz != n-1) && (v[poz]== x))
{
puts("ds");
fprintf(g,"%d\n",poz+1);
}
if (poz !=1 && poz!= n-1 &&v[poz]!=n)
{
if (v[poz]<x)
fprintf(g,"%d\n",poz+1);
else
fprintf(g,"%d\n",poz);
puts("dsa");
}
}
int main()
{
int n,i,x,m,opt;
f = fopen("cautbin.in","r");
g = fopen("cautbin.out","w");
fscanf(f,"%d",&n);
int *v = malloc(sizeof(int)*n);
for(i=0;i<n;i++)
fscanf(f,"%d",v+i);
fscanf(f,"%d",&m);
for(i=0;i<m;i++)
{
fscanf(f,"%d %d",&opt,&x);
switch(opt)
{
case 0:met1(v,x,n); break;
case 1:fprintf(g,"\n");//met2(v,x,n); break;
case 2:fprintf(g,"\n");//met3(v,x); break
}
}
fclose(f);
fclose(g);
return 0;
}