#include <bits/stdc++.h>
using namespace std;
const double PI = acos(-1.0);
const double EPS = 1e-6;
int bill[6005];
int main() {
  { ; };
  int n, k;
  scanf("%d %d", &n, &k);
  for (int i = 0; i < n; i++) scanf("%d", bill + i);
  int q;
  scanf("%d", &q);
  while (q--) {
    int x;
    scanf("%d", &x);
    int res = ((1 << 30) - 1);
    for (int i = 0; i < n; i++)
      if (x % bill[i] == 0 && x / bill[i] <= k) res = min(res, x / bill[i]);
    for (int j = n - 1; j >= 0; j--) {
      for (int a = 1; a <= k; a++) {
        int remain = x - bill[j] * a;
        if (remain < 0LL) break;
        for (int b = 1; b <= k - a; b++)
          if (remain % b == 0) {
            int target = remain / b;
            auto itr = lower_bound(bill, bill + n, target);
            if (itr != bill + n && *itr == target) {
              res = min(res, a + b);
            }
          }
      }
    }
    if (res == ((1 << 30) - 1))
      puts("-1");
    else
      printf("%d\n", res);
  }
  return 0;
}
