#include <bits/stdc++.h>
using namespace std;
const int MAX = 1e7 + 100;
const int MAXN = 5050;
int a[MAXN];
bool ima[MAX];
int main(void) {
  int n, k;
  scanf("%d %d", &n, &k);
  for (int i = (0); i < (n); ++i) {
    scanf("%d", &a[i]);
    ima[a[i]] = true;
  }
  int q;
  scanf("%d", &q);
  while (q--) {
    int v;
    scanf("%d", &v);
    int ans = k + 1;
    for (int i = (0); i < (n); ++i)
      for (int x = (0); x < (k + 1); ++x) {
        int rem = v - x * a[i];
        if (rem < 0) break;
        if (rem == 0) {
          ans = min(ans, x);
          continue;
        }
        for (int y = (1); y < (k + 1 - x); ++y)
          if (rem % y == 0 && rem / y < MAX && ima[rem / y]) {
            ans = min(ans, x + y);
            break;
          }
      }
    if (ans > k) ans = -1;
    printf("%d\n", ans);
  }
  return 0;
}
