#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9;
const long long INF64 = 1e18;
const int MOD = 1000000007;
const int N = 10001;
int main() {
  int n, k;
  vector<pair<int, int> > a;
  scanf("%d%d", &n, &k);
  for (int i = 0; i < int(n); i++) {
    int x;
    scanf("%d", &x);
    int cur = 0;
    int c = 0;
    for (int j = 1; j <= k; j++) {
      c++;
      cur += x;
      a.push_back(make_pair(cur, c));
    }
  }
  sort(a.begin(), a.end());
  int m = a.size();
  int q;
  scanf("%d", &q);
  for (int i = 0; i < int(q); i++) {
    int x;
    scanf("%d", &x);
    int res = INF;
    for (int j = 0; j < int(m); j++) {
      int left = x - a[j].first;
      if (left == 0) {
        res = min(res, a[j].second);
      }
      auto it = lower_bound(a.begin(), a.end(), make_pair(left, 0));
      if (it == a.end()) continue;
      while (left - (*it).first == 0) {
        if (a[j].second + (*it).second <= k)
          res = min(res, a[j].second + (*it).second);
        it++;
      }
    }
    if (res > INF / 2)
      printf("-1\n");
    else
      printf("%d\n", res);
  }
  return 0;
}
