#include <bits/stdc++.h>
using namespace std;
int M = 1e9;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  int n, k;
  cin >> n >> k;
  map<int, int> min_amount;
  while (n--) {
    int a;
    cin >> a;
    int amount = a;
    for (int i = 1; i <= k; ++i) {
      int &value = min_amount[amount];
      value = min(value + (value == 0) * M, i);
      amount += a;
    }
  }
  int q;
  cin >> q;
  while (q--) {
    int x;
    cin >> x;
    int ans = k + 1;
    for (auto magic : min_amount) {
      if (magic.first > x) break;
      if (magic.first == x) {
        ans = min(ans, magic.second);
        continue;
      }
      auto value = min_amount.find(x - magic.first);
      if (value != min_amount.end())
        ans = min(ans, magic.second + value->second);
    }
    cout << (ans > k ? -1 : ans) << '\n';
  }
  return 0;
}
