#include <bits/stdc++.h>
using namespace std;
template <class T>
T abs(T x) {
  return x > 0 ? x : -x;
}
const int maxn = 5100;
map<long long, int> e;
int main() {
  std::ios::sync_with_stdio(false);
  int n, k;
  int a[maxn];
  cin >> n >> k;
  for (int i = 0; i < n; i++) {
    cin >> a[i];
    for (int j = 1; j <= k; j++) {
      long long s = j * a[i];
      if (e.find(s) == e.end()) {
        e[s] = j;
      } else {
        e[s] = min(j, e[s]);
      }
    }
  }
  int q;
  cin >> q;
  for (int i = 0; i < q; i++) {
    int x;
    cin >> x;
    int ans = x + 1;
    for (int j = 0; j < n; j++) {
      for (int jj = 1; jj <= k; jj++) {
        if (jj * a[j] <= x) {
          if (jj * a[j] == x) {
            ans = min(ans, jj);
          } else {
            if (e.find(x - jj * a[j]) != e.end()) {
              ans = min(ans, jj + e[x - jj * a[j]]);
            }
          }
        } else {
          break;
        }
      }
    }
    if (ans == x + 1 || ans > k) {
      cout << -1 << '\n';
    } else {
      cout << ans << '\n';
    }
  }
  return 0;
}
