#include <bits/stdc++.h>
using namespace std;
int a[5005];
int n, k, q;
map<int, int> judge;
int main() {
  int x;
  scanf("%d%d", &n, &k);
  for (int i = 0; i < n; i++) {
    scanf("%d", a + i);
    judge[a[i]] = 1;
  }
  scanf("%d", &q);
  while (q--) {
    int ans = 1000000000;
    scanf("%d", &x);
    for (int i = 0; i < n; ++i)
      for (int j = 0; j <= k; ++j) {
        if (x == a[i] * j) ans = min(ans, j);
        if (x < a[i] * j) break;
        for (int jj = 1; jj <= k - j; ++jj)
          if ((x - a[i] * j) % jj == 0 && judge.count((x - a[i] * j) / jj))
            ans = min(ans, j + jj);
      }
    if (ans <= k)
      printf("%d\n", ans);
    else
      puts("-1");
  }
  return 0;
}
