#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
long long B, q;
cin >> B >> q;
vector<long long> a(B);
for (long long i = 0; i < B; ++i) cin >> a[i];
vector<long long> queries(q);
for (long long i = 0; i < q; ++i) cin >> queries[i];
// Suma wszystkich cyfr
long long total_sum = 0;
for (long long i = 0; i < B; ++i)
total_sum += i * a[i];
long long mod = total_sum % (B - 1);
// Jeśli suma % (B-1) != 0, trzeba usunąć jedną cyfrę
if (mod != 0) {
bool found = false;
for (long long c = 1; c < B; ++c) {
if (a[c] > 0 && c % (B - 1) == mod) {
a[c]--;
found = true;
break;
}
}
// jeśli nie znaleziono, spróbuj usunąć 0 (rzadko)
if (!found && a[0] > 0 && 0 % (B - 1) == mod)
a[0]--;
}
// Tworzymy "pozycje" cyfr w liczbie, od lewej do prawej
vector<long long> positions;
for (long long i = B - 1; i >= 0; --i) {
for (long long j = 0; j < a[i]; ++j)
positions.push_back(i);
}
// Jeśli wszystkie cyfry to zero
bool all_zero = true;
for (auto d : positions) if (d != 0) all_zero = false;
if (all_zero) positions = {0};
long long n = positions.size();
for (long long i = 0; i < q; ++i) {
long long k = queries[i];
if (k >= n) cout << -1 << "\n";
else
// Cyfry liczymy od prawej (LSB = 0)
cout << positions[n - 1 - k] << "\n";
}
return 0;
}