#include <bits/stdc++.h>
using namespace std;
const int oo = (int)1e9;
const double PI = 2 * acos(0.0);
const double eps = 1e-7;
int main() {
  int n, k;
  cin >> n >> k;
  int arr[50000];
  map<int, int> v;
  for (int i = 0; i < n; i++) {
    cin >> arr[i];
    for (int j = 1; j < k + 1; j++)
      if (v.find(arr[i] * j) != v.end()) {
        int u = v[arr[i] * j];
        v[arr[i] * j] = min(u, j);
      } else
        v.insert({arr[i] * j, j});
  }
  v.insert({0, 0});
  int q, a;
  int ans;
  cin >> q;
  for (int i = 0; i < q; i++) {
    cin >> a;
    ans = int(1e9);
    for (auto i : v) {
      if (v.find(a - i.first) != v.end())
        ans = min(ans, i.second + v[a - i.first]);
    }
    if (ans <= k)
      cout << ans << endl;
    else
      cout << -1 << endl;
  }
}
