#include <bits/stdc++.h>
using namespace std;
int sq[5000 + 10];
map<int, int> cnt;
int main() {
  int i, j, k, t, cs, n, m, mn, mx, v, rem, res = 0, cur, q;
  scanf("%d %d", &n, &k);
  for (i = 1; i <= n; i++) scanf("%d", &sq[i]);
  scanf("%d", &q);
  while (q--) {
    cnt.clear();
    res = (1 << 30);
    cnt[0] = 0;
    scanf("%d", &v);
    for (i = n; i >= 1; i--)
      for (j = 1; j <= k; j++) {
        cur = sq[i] * j;
        if (cur > v) break;
        if (cnt.find(cur) == cnt.end())
          cnt[cur] = j;
        else
          cnt[cur] = min(cnt[cur], j);
      }
    for (i = n; i >= 1; i--)
      for (j = 1; j <= k; j++) {
        rem = v - sq[i] * j;
        if (rem < 0) break;
        if (cnt.find(rem) == cnt.end()) continue;
        res = min(res, j + cnt[rem]);
      }
    printf("%d\n", res > k ? -1 : res);
  }
  return 0;
}
