#include <bits/stdc++.h>
using namespace std;
const int MAX = 5010;
int n, k, a[MAX];
void wczytaj_dane() {
  cin >> n >> k;
  for (int i = 0; i < (n); i++) cin >> a[i];
}
int zapytanie(int x) {
  int wynik = MAX;
  for (int b = (1); b <= (k); b++)
    for (int i = 0; i < (n); i++) {
      int brakuje = x - b * a[i];
      if (brakuje <= 0) {
        if (brakuje == 0) wynik = min(wynik, b);
        continue;
      }
      for (int c = (1); c <= (k - b); c++)
        if (brakuje % c == 0 && binary_search(a, a + n, brakuje / c))
          wynik = min(wynik, b + c);
    }
  return wynik == MAX ? -1 : wynik;
}
void zrob_zapytania() {
  int q;
  cin >> q;
  while (q--) {
    int x;
    cin >> x;
    cout << zapytanie(x) << '\n';
  }
}
void zrob_test() {
  wczytaj_dane();
  zrob_zapytania();
}
int main() {
  ios_base::sync_with_stdio(0);
  zrob_test();
  return 0;
}
