#include <bits/stdc++.h>
using namespace std;
int n, k;
map<int, int> S;
int x;
int v, c, cc;
int N[50000];
int main() {
  scanf("%d%d", &n, &k);
  for (int i = 0; i < n; i++) {
    scanf("%d", &N[i]);
    for (int j = 1; j <= k; j++) {
      if (S[j * N[i]] == 0) {
        S[j * N[i]] = j;
      } else
        S[j * N[i]] = min(j, S[j * N[i]]);
    }
  }
  int m;
  scanf("%d", &m);
  while (m--) {
    scanf("%d", &x);
    int r = k + 1;
    for (int i = 0; i < n; i++) {
      for (int j = 0; j <= k; j++) {
        if (x == j * N[i]) {
          r = min(r, j);
        }
        if (S[x - (j * N[i])] != 0) r = min(r, S[x - (j * N[i])] + j);
      }
    }
    if (k + 1 == r) {
      r = -1;
    }
    cout << r << endl;
  }
  return 0;
}
