#include <stdio.h>
#include <stdlib.h>
int custom_binary_search(int array[],int left,int right,int max_index,int number,int mode)
{
if(left<=right)
{
int middle=left + (right-left)/2;
////////////////////////////////////////////////
if(mode==0 && array[middle]==number && array[middle+1]>number)
return middle;
if(mode==0 && middle==max_index && array[middle]==number)
return middle;
if(mode==0 && array[middle]==number && array[middle+1]==number)
return custom_binary_search(array,middle+1,right,max_index,number,mode);
if(mode==0 && array[middle]<number)
return custom_binary_search(array,middle+1,right,max_index,number,mode);
if(mode==0 && array[middle]>number)
return custom_binary_search(array,left,middle-1,max_index,number,mode);
///////////////////////////////////////////////////////////////////////////////
if(mode==1 && array[middle]<=number && middle==max_index)
return middle;
if(mode==1 && array[middle]<=number && array[middle+1]>number)
return middle;
if(mode==1 && array[middle]==number && array[middle+1]==number)
return custom_binary_search(array,middle+1,right,max_index,number,mode);
if(mode==1 && array[middle]<number)
return custom_binary_search(array,middle+1,right,max_index,number,mode);
if(mode==1 && array[middle]>number)
return custom_binary_search(array,left,middle-1,max_index,number,mode);
////////////////////////////////////////////////////////////////////////////////
if(mode==2 && array[middle]>=number && middle==0)
return middle;
if(mode==2 && array[middle]>=number && array[middle-1]<number)
return middle;
if(mode==2 && array[middle]==number && array[middle-1]==number)
return custom_binary_search(array,left,middle-1,max_index,number,mode);
if(mode==2 && array[middle]<number)
return custom_binary_search(array,middle+1,right,max_index,number,mode);
if(mode==2 && array[middle]>number)
return custom_binary_search(array,left,middle-1,max_index,number,mode);
}
return -1;
}
int main()
{
FILE *read=fopen("cautbin.in","r");
FILE *write=fopen("cautbin.out","w");
int length_of_array;
int number_of_questions;
int array[100001];
fscanf(read,"%d",&length_of_array);
for(int i=0;i<length_of_array;i++)
fscanf(read,"%d",&array[i]);
fscanf(read,"%d",&number_of_questions);
int x,y;
for(int i=0;i<number_of_questions;i++)
{
fscanf(read,"%d %d",&x,&y);
int res=custom_binary_search(array,0,length_of_array-1,length_of_array-1,y,x);
if(res==-1)
printf("-1\n");
else
printf("%d\n",res+1);
}
fclose(read);
fclose(write);
return 0;
}