#include <bits/stdc++.h>
using namespace std;
const int maxn = 5010;
int a[maxn + 1];
int n, K, Q;
int result;
set<int> S;
void init() {
  int i, j, k, w, t, x, s, top;
  scanf("%d%d", &n, &K);
  for (i = 1; i <= n; ++i) {
    scanf("%d", &a[i]);
    S.insert(a[i]);
  }
  scanf("%d", &Q);
  for (w = 1; w <= Q; ++w) {
    scanf("%d", &x);
    result = -1;
    for (i = n; i >= 1; --i)
      if (x % a[i] == 0) {
        if (x / a[i] <= K) {
          result = x / a[i];
          break;
        }
      }
    for (i = 1; i <= K; ++i) {
      for (j = 1; j <= K; ++j) {
        if (i + j > K) continue;
        if ((result != -1) && (i + j >= result)) continue;
        for (k = n; k >= 1; --k) {
          if (x / a[k] < i) continue;
          if ((result != -1) && (x / a[k] >= result)) break;
          t = x - a[k] * i;
          if (t % j == 0) {
            if (S.find(t / j) != S.end()) {
              result = i + j;
              break;
            }
          }
        }
      }
    }
    printf("%d\n", result);
  }
}
int main() {
  init();
  return 0;
}
