#include <bits/stdc++.h>
using namespace std;
const int N = 5000, A = 10000000;
int aa[N];
bool used[A + 1];
int main() {
  int n, k;
  cin >> n >> k;
  for (int i = 0; i < n; i++) {
    int a;
    cin >> a;
    used[aa[i] = a] = true;
  }
  int q;
  cin >> q;
  while (q--) {
    int x;
    cin >> x;
    int k_ = k + 1;
    for (int i = 0; i < n && aa[i] <= x; i++)
      for (int k1 = 1, y; k1 <= k && (y = x - k1 * aa[i]) >= 0; k1++) {
        if (y == 0) {
          k_ = min(k_, k1);
          continue;
        }
        for (int k2 = 1; k1 + k2 <= k; k2++)
          if (y % k2 == 0 && y / k2 <= A && used[y / k2]) k_ = min(k_, k1 + k2);
      }
    cout << (k_ != k + 1 ? k_ : -1) << '\n';
  }
  return 0;
}
