#include <bits/stdc++.h>
using namespace std;
const double PI = acos(-1);
const double EPS = 1e-9;
void task();
int main() {
  ios_base::sync_with_stdio(false);
  srand(time(0));
  task();
  return 0;
}
int n = 0;
int k = 0;
int q = 0;
vector<int> a;
map<int, int> money;
void init() {
  cin >> n >> k;
  a.resize(n);
  for (int i = 0; i < n; ++i) cin >> a[i];
  cin >> q;
}
void solve() {
  for (int i = 0; i < n; ++i)
    for (int j = 1; j <= k; ++j)
      if (money.find(a[i] * j) != money.end())
        money[a[i] * j] = min(money[a[i] * j], j);
      else
        money[a[i] * j] = j;
  for (int i = 0; i < q; ++i) {
    long long x = 0;
    cin >> x;
    if (x > 2e9) {
      cout << -1 << endl;
      continue;
    }
    int ans = k + 1;
    for (auto to : money) {
      if (to.first > x) break;
      if (to.second > k) continue;
      if (to.first == x) {
        ans = min(ans, to.second);
        continue;
      }
      auto it = money.find(x - to.first);
      if (it != money.end() && it->second + to.second < ans)
        ans = it->second + to.second;
    }
    if (ans == k + 1)
      cout << -1 << endl;
    else
      cout << ans << endl;
  }
}
void print_answer() {}
void task() {
  init();
  solve();
  print_answer();
}
