#include <bits/stdc++.h>
using namespace std;
const int MAXN = 5000;
set<int> vis;
int arr[MAXN + 5];
int main() {
  int n, k, q, res;
  int cash, cash1, cash2;
  cin >> n >> k;
  for (int i = 0; i < n; i++) {
    cin >> arr[i];
    vis.insert(arr[i]);
  }
  cin >> q;
  while (q--) {
    cin >> cash;
    res = 50;
    for (int i = 0; i < n; i++) {
      for (int tot = 1; tot <= k; tot++) {
        for (int u = 1; u <= tot; u++) {
          int v = tot - u;
          cash1 = arr[i] * u;
          cash2 = cash - cash1;
          if (v == 0) {
            if (cash1 == cash) res = min(res, tot);
          } else if (cash2 >= 0 && cash2 % v == 0 && vis.count(cash2 / v) &&
                     cash2 / v != arr[i]) {
            res = min(res, tot);
          }
        }
      }
    }
    if (res == 50)
      cout << "-1\n";
    else
      cout << res << "\n";
  }
  return 0;
}
