#include <bits/stdc++.h>
using namespace std;
const long long Mod = 7 + 1e9;
const long long INF32 = 5 + 2e9;
const long long INF64 = 1 + 5e3;
const long long MAX = 5 + 5e3;
long long N, K, Q, X, a[MAX];
map<int, int> mp;
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> N >> K;
  for (int i = 0; i < N; i++) {
    cin >> X;
    for (int j = 1; j <= K; j++)
      if (!mp.count(j * X))
        mp[j * X] = j;
      else
        mp[j * X] = min(mp[j * X], j);
  }
  cin >> Q;
  while (Q--) {
    cin >> X;
    int ans = K + 1;
    for (auto Y : mp)
      if (X < Y.first)
        break;
      else if (X == Y.first)
        ans = min(ans, Y.second);
      else if (mp.count(X - Y.first))
        ans = min(ans, mp[X - Y.first] + Y.second);
    cout << (ans > K ? -1 : ans) << endl;
  }
  return 0;
}
