#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:36777216")
using namespace std;
int main() {
  int n, k, q;
  scanf("%d%d", &n, &k);
  vector<int> a(n);
  for (int i = 0; i < n; ++i) scanf("%d", &a[i]);
  a.push_back((1000 * 1000 * 1000LL + 1));
  sort(a.begin(), a.end());
  scanf("%d", &q);
  for (int i = 0; i < q; ++i) {
    int x;
    scanf("%d", &x);
    int good = (1000 * 1000 * 1000LL + 1);
    for (int type = 0; type < n; ++type) {
      for (int j = 0; j <= k && j * a[type] <= x && j < good; ++j) {
        int tmp = x - j * a[type];
        if (!tmp) good = min(good, j);
        for (int l = 1; l <= k - j && j + l < good; ++l) {
          int t = *lower_bound(a.begin(), a.end(), tmp / l);
          if (tmp % l == 0 && t == tmp / l) good = min(good, j + l);
        }
      }
    }
    if (good == (1000 * 1000 * 1000LL + 1)) good = -1;
    printf("%d\n", good);
  }
  return 0;
}
