#include <bits/stdc++.h>
using namespace std;
const int nmax = 5005;
int n, K, i, j, k, l, sol, q, x, a[nmax];
map<int, int> M;
int main() {
  cin.sync_with_stdio(false);
  cin >> n >> K;
  for (i = 1; i <= n; i++) cin >> a[i];
  for (i = 1; i <= n; i++)
    for (j = 1; j <= K; j++) M[a[i] * j] = j;
  M[0] = 0;
  cin >> q;
  for (; q; q--) {
    cin >> x;
    sol = K + 1;
    for (auto it : M)
      if (M.count(x - it.first)) sol = min(sol, it.second + M[x - it.first]);
    if (sol > K) sol = -1;
    cout << sol << '\n';
  }
  return 0;
}
