#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:5000000000")
const long long mod = 1000000007;
long long Inf = (long long)2e9;
long long LINF = (long long)1e18 + 1e17;
using namespace std;
int a[5000];
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int n, k;
  cin >> n >> k;
  map<int, int> cnt;
  for (int i = 0; i < n; i++) {
    cin >> a[i];
    int s = 0;
    for (int j = 1; j <= k; j++) {
      s += a[i];
      if (!cnt.count(s))
        cnt[s] = j;
      else
        cnt[s] = min(cnt[s], j);
    }
  }
  int q;
  int x, ans, s, need, can, y;
  cin >> q;
  while (q--) {
    cin >> x;
    ans = Inf;
    for (int i = 0; i < n; i++) {
      for (int j = 0; j <= k; j++) {
        s = a[i] * j;
        need = x - s;
        if (need < 0) break;
        can = k - j;
        if (cnt.count(need)) {
          y = cnt[need];
          if (y <= can) ans = min(ans, j + y);
        }
      }
    }
    if (ans == Inf)
      cout << -1;
    else
      cout << ans;
    cout << endl;
  }
  return 0;
}
