#include <bits/stdc++.h>
#define ull unsigned long long
#define MAXN 100005
using namespace std;
ull Pow[MAXN],sum1[MAXN],sum0[MAXN],a[MAXN];
ull m,sum;
int main() {
//clock_t start = clock();
Pow[0] = 1;
for(int i = 1;i <= 50;i ++) Pow[i] = Pow[i - 1] * 2;
int n; scanf("%d",&n);
for(int i = 1;i <= n;i ++) {
scanf("%llu",&a[i]);
for(int j = 50;j >= 0;j --) {
if(((ull)1 << j) & a[i]) sum1[j] ++;
else sum0[j] ++;
}
sum += a[i];
}
int q; scanf("%d",&q);
for(int i = 1;i <= q;i ++) {
scanf("%llu",&m);
ull ans = 0,res = sum;
for(int j = 50;j >= 0;j --) {
if(res + (sum0[j] * Pow[j]) - (sum1[j] * Pow[j]) <= m) {
res = res + (sum0[j] * Pow[j]) - (sum1[j] * Pow[j]);
ans += Pow[j];
}
}
if(ans == 0) printf("-1\n");
else printf("%llu\n",ans);
}
//clock_t end = clock();
//cout << (double)(end - start) / CLOCKS_PER_SEC << endl;
return 0;
}