#include <bits/stdc++.h>
using namespace std;
map<int, int> MAP;
int main() {
  int n, k;
  cin >> n >> k;
  MAP[0] = 0;
  for (int i = 1; i <= n; i++) {
    int x, sum = 0;
    cin >> x;
    for (int j = 1; j <= k; j++) {
      sum += x;
      map<int, int>::iterator it = MAP.find(sum);
      if (it == MAP.end()) {
        MAP[sum] = j;
        continue;
      }
      if (it->second < j) continue;
      it->second = j;
    }
  }
  int q;
  cin >> q;
  while (q--) {
    int x, sol = 21;
    cin >> x;
    for (map<int, int>::iterator it = MAP.begin(); it != MAP.end(); it++) {
      int value = it->first;
      map<int, int>::iterator it2 = MAP.find(x - value);
      if (it2 == MAP.end()) continue;
      int nr1 = it->second;
      int nr2 = it2->second;
      if (nr1 + nr2 < sol && nr1 + nr2 <= k) sol = nr1 + nr2;
    }
    if (sol == 21)
      cout << "-1\n";
    else
      cout << sol << "\n";
  }
}
