#include <bits/stdc++.h>
using namespace std;
#define kien long long
#define int long long
#define pb push_back
#define FOR(i, a, b) for (int i = a;i <= b; i++)
#define FORD(i, a, b) for (int i = a;i >= b; i--)
#define pii pair<int, int>
#define dembit(a) __builtin_popcountll(a)
#define task "a"
#define fin(x) freopen(x".inp","r",stdin)
#define fou(x) freopen(x".out","w",stdout)
#define debug(x) cout << x << " ";
#define down cout << "\n"
const kien MOD = 1e9 + 7;
const int NTEST = 100;
const int Million = 1e6 + 5;
const int MXN = 2e5 + 5;
const int LOG = 18;
mt19937 rd(chrono::high_resolution_clock::now().time_since_epoch().count());
kien rand(kien l, kien r) {
assert(l <= r);
return uniform_int_distribution<kien>(l, r)(rd);
}
kien n, k, m, dem, u, v, a[MXN];
kien maxx, minn, l, r, ans, en;
struct KBB { kien mot, hai, ba; };
vector <KBB> res;
void change (kien star, kien n) {
int time = 1;
while (n % 2 == 0) {
n /= 2;
time *= 2;
}
// cout << time << " ";
// FOR (i, 1, time) res.pb(n);
en = star + time - 1;
res.pb({star, en, n});
}
kien tknp (kien x) {
int l = 0, r = res.size() - 1;
int kq = 0;
while (l <= r) {
int mid = (l + r) >> 1;
if (res[mid].mot <= x) {
kq = mid;
l = mid + 1;
}
else r = mid - 1;
}
return res[kq].ba;
}
main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
if (fopen(task".inp", "r")) {
fin(task); fou(task);
}
cin >> n;
en = 1;
FOR (i, 1, n) {
cin >> a[i];
if (a[i] % 2 == 0) { change(en, a[i]); }
else res.pb({en, en, a[i]});
en += 1;
}
// for (auto x : res) cout << x.mot << " " << x.hai << " " << x.ba << "\n";
// cout << "\n---------------";
kien q; cin >> q;
while (q--) {
cin >> r;
cout << tknp(r) << "\n";
}
cerr << "\n" << 1.0 * clock() / CLOCKS_PER_SEC << "s ";
}