#include <bits/stdc++.h>
using namespace std;
map<int, int> q;
int main() {
  int n, k;
  int a[5010];
  scanf("%d%d", &n, &k);
  for (int i = 0; i < n; i++) {
    scanf("%d", &a[i]);
    for (int j = 1; j <= k; j++) {
      q[a[i] * j] = j;
    }
  }
  int t;
  scanf("%d", &t);
  while (t--) {
    int x;
    int minv = 1 << 30;
    scanf("%d", &x);
    for (int i = 0; i < n; i++) {
      for (int j = 1; j <= k; j++) {
        int lef = x - a[i] * j;
        if (lef < 0) continue;
        if (lef == 0) minv = min(minv, j);
        if (q.find(lef) != q.end()) {
          if (q[lef] + j > k) continue;
          minv = min(minv, q[lef] + j);
        }
      }
    }
    if (minv != 1 << 30)
      printf("%d\n", minv);
    else
      printf("-1\n");
  }
  return 0;
}
