#include <bits/stdc++.h>
using namespace std;
int a[5003];
map<int, int> mp;
int main() {
  mp.clear();
  mp[0] = 0;
  int n, k;
  scanf("%d%d", &n, &k);
  for (int i = 1; i <= n; i++) {
    scanf("%d", &a[i]);
    for (int j = 1; j <= k; j++) {
      int now = a[i] * j;
      if (mp.find(now) == mp.end())
        mp[now] = j;
      else if (mp[now] > j)
        mp[now] = j;
    }
  }
  int q;
  scanf("%d", &q);
  for (int i = 1; i <= q; i++) {
    int x;
    scanf("%d", &x);
    int ans = -1;
    for (int j = 1; j <= n; j++)
      for (int t = 1; t <= k; t++) {
        int now = x - a[j] * t;
        if (now >= 0 && mp.find(now) != mp.end()) {
          int kk = mp[now];
          if (kk + t <= k && (ans == -1 || kk + t < ans)) ans = kk + t;
        }
      }
    cout << ans << endl;
  }
  return 0;
}
