#include <bits/stdc++.h>
using namespace std;
int ar[5002];
int s[5002][22];
map<int, int> M;
int main() {
  int a, b, c, d, e, x, y, z, n, k, q;
  scanf("%d %d", &n, &k);
  M.clear();
  for (a = 0; a < n; a++) {
    scanf("%d", &ar[a]);
    for (b = 1; b <= k; b++) {
      s[a][b] = ar[a] * b;
      if (!M[s[a][b]])
        M[s[a][b]] = b;
      else
        M[s[a][b]] = min(M[s[a][b]], b);
    }
  }
  scanf("%d", &q);
  while (q--) {
    scanf("%d", &z);
    x = 50;
    for (a = 0; a < n; a++) {
      for (b = 1; b <= k; b++) {
        if (s[a][b] > z) break;
        if (s[a][b] == z) {
          x = min(x, b);
          break;
        }
        y = z - s[a][b];
        if (M[y]) {
          if (M[y] + b <= k) x = min(x, M[y] + b);
        }
      }
    }
    if (x == 50) x = -1;
    cout << x << endl;
  }
  return 0;
}
