#include <bits/stdc++.h>
using namespace std;
int t,n,q,l,rl,rr,k,a[200001],xds[400001],rm,ans;
void build(int s,int t,int p)
{
if(s==t)
{
xds[p]=a[s];
return;
}
int m=s+t>>1;
build(s,m,p<<1),build(m+1,t,(p<<1)|1);
xds[p]=xds[p<<1]&xds[(p<<1)|1];
return;
}
int cha(int s,int t,int p)
{
if(l<=s&t<=rm)return xds[p];
int m=s+t>>1,sum=a[l];
if(l<=m)sum&=cha(s,m,p<<1);
if(rm>m)sum&=cha(m+1,t,(p<<1)|1);
return sum;
}
int main()
{
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(int i=1;i<=n;++i)scanf("%d",a+i);
build(1,n,1);
scanf("%d",&q);
while(q--)
{
scanf("%d %d",&l,&k);
rl=l,rr=n,ans=-1;
while(rl<=rr)
{
rm=rl+rr>>1;
if(cha(1,n,1)<k)rr=rm-1;
else rl=rm+1,ans=rm;
}
printf("%d ",ans);
}
printf("\n");
}
return 0;
}