#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
using namespace std;
const int N = 1000100;
#define INF 20000000000
long long a[N],sum[N],min_b[N][2],max_a[N][2];//0ji 1ou
bool cmp(long long a, long long b) {
return a > b;
};
int main() {
long n, m, q;
long long res;
scanf("%ld", &n);
for (int i = 1; i <= n; i++) {
scanf("%lld", &a[i]);
};
sort(a + 1, a + n + 1, cmp);
for (int i = 1; i <= n; i++) {
sum[i] = sum[i - 1] + a[i];
};
min_b[0][0] = min_b[0][1] = INF;
for (int i = 1; i <= n; i++) {
min_b[i][0] = min_b[i - 1][0];
min_b[i][1] = min_b[i - 1][1];
if (a[i] &1) {
min_b[i][0] = min(min_b[i][0], a[i]);
}
else {
min_b[i][1] = min(min_b[i][1], a[i]);
};
};
for (int i = n; i>0; i--) {
max_a[i][0] = max_a[i + 1][0];
max_a[i][1] = max_a[i + 1][1];
if (a[i]&1) {
max_a[i][0] = max(max_a[i][0], a[i]);
}
else {
max_a[i][1] = max(max_a[i][1], a[i]);
};
};
scanf("%ld", &m);
for (int i = 1; i <= m; i++) {
scanf("%ld", &q);
if (sum[q] &1) {
printf("%lld\n", sum[q]);
}
else {//为偶数的情况
res = -1;
if ((min_b[q][0]!=INF)&& max_a[q + 1][1])res = max(res, sum[q] - min_b[q][0] + max_a[q + 1][1]);
if ((min_b[q][1]!= INF)&& max_a[q + 1][0])res = max(res, sum[q] - min_b[q][1] + max_a[q + 1][0]);
printf("%lld\n", res);
};
};
return 0;
};