#include <bits/stdc++.h>
using namespace std;
int n, k, q, x;
map<int, int> M;
map<int, int>::iterator it;
int main() {
  scanf("%d %d", &n, &k);
  for (int i = (1); i <= (n); i++) {
    int a;
    scanf("%d", &a);
    for (int j = (0); j <= (k); j++) {
      if (!M.count(a * j))
        M[a * j] = j;
      else
        M[a * j] = min(M[a * j], j);
    }
  }
  scanf("%d", &q);
  while (q--) {
    scanf("%d", &x);
    int res = 99;
    for (it = M.begin(); it != M.end(); it++) {
      int v = (*it).first, c = (*it).second;
      if (M.count(x - v)) {
        int cc = M[x - v];
        res = min(res, c + cc);
      }
    }
    if (res > k) res = -1;
    printf("%d\n", res);
  }
  return 0;
}
