#include <bits/stdc++.h>
using namespace std;
int main() {
  map<int, int> d;
  int n, k;
  cin >> n >> k;
  vector<int> a(n);
  for (int i = 0; i < n; i++) cin >> a[i];
  int x, y;
  for (int i = 0; i < n; i++)
    for (int j = 0; j <= k; j++) {
      x = a[i] * j;
      if (d.count(x) == 0 || d[x] > j) d[x] = j;
    }
  int q;
  cin >> q;
  int min;
  for (int i = 0; i < q; i++) {
    cin >> x;
    min = 30;
    for (map<int, int>::iterator it = d.begin(); it != d.end(); it++) {
      y = it->first;
      if (d.count(x - y) && d[x - y] + it->second < min)
        min = d[x - y] + it->second;
    }
    if (min <= k)
      cout << min << endl;
    else
      cout << -1 << endl;
  }
  return 0;
}
