#include<bits/stdc++.h>
#define N 100005
using namespace std;
int a[N][55],b[N];
long long n,x,tot,num,s[55];
long long sum[55],ans;
int q;
long long anss;
long long m;
inline long long read(){
long long x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')
f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
return x*f;
}
int main(){
n=read();num=-2;
for(int i=1;i<=n;i++){
x=read();
tot=-1;
while(x){
tot++;
a[i][tot]=x%2;
sum[tot]+=x%2;
x/=2;
}
num=max(num,tot);
}
/*for(int i=1;i<=n;i++){
for(int j=num;j>=0;j--)
cout<<a[i][j];
cout<<endl;
}*/
s[0]=1;
for(int i=1;i<=50;i++)s[i]=s[i-1]*2;
for(int j=num;j>=0;j--)
if(sum[j]>=n-sum[j]){a[n+1][j]=1;ans=ans+s[j]*(n-sum[j]);}
else {a[n+1][j]=0;ans=ans+s[j]*sum[j];}
//for(int i=num;i>=0;i--)cout<<a[n+1][i];
//cout<<endl;
//cout<<ans<<endl;
q=read();
for(int i=1;i<=q;i++){
m=read();
//if(ans==0){printf("%lld\n",m);continue;}
m-=ans;
if(m<0){printf("-1\n");continue;}
for(int j=0;j<=50;j++)b[j]=a[n+1][j];
for(int j=50;j>num;j--)
if(m>=s[j]*n){
b[j]=1;
m-=s[j]*n;
}
for(int j=num;j>=0;j--)
if(b[j]==0)
if(m>=abs(n-2*sum[j])*s[j]){
b[j]=1;
m-=abs(n-2*sum[j])*s[j];
}
anss=0;
for(int j=50;j>=0;j--)
anss=anss+b[j]*s[j];
printf("%lld\n",anss);
}
return 0;
}