#include <bits/stdc++.h>
using namespace std;
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long n, k;
  cin >> n >> k;
  vector<long long> v(n);
  map<long long, long long> mp;
  for (long long i = 0; i < n; i++) {
    cin >> v[i];
    for (long long j = 1; j <= k; j++) {
      long long curr = v[i] * j;
      if (mp[curr]) {
        mp[curr] = min(mp[curr], j);
      } else {
        mp[curr] = j;
      }
    }
  }
  vector<long long> chk;
  map<long long, long long> rem;
  for (auto x : mp) {
    chk.push_back(x.first);
    rem[x.first] = x.second;
  }
  long long mx = v[n - 1] * k;
  long long q;
  cin >> q;
  for (long long i = 0; i < q; i++) {
    long long x;
    cin >> x;
    long long ans = 10000000000;
    if (x > mx || x < v[0]) {
      cout << "-1\n";
    } else {
      if (rem[x]) {
        ans = rem[x];
      }
      for (long long i = 0; i < chk.size(); i++) {
        long long now = chk[i];
        if (now > x) {
          break;
        }
        long long diff = x - now;
        if (rem[diff]) {
          long long curr1 = rem[chk[i]];
          long long curr2 = rem[diff];
          ans = min(ans, curr1 + curr2);
        }
      }
      if (ans > k) {
        ans = -1;
      }
      cout << ans << "\n";
    }
  }
}
