#include <bits/stdc++.h>
using namespace std;
int n, k, q;
const int MX = (int)1e7 + 10;
int was[MX];
int a[10000];
int main() {
  scanf("%d %d", &n, &k);
  for (int i = 0; i < n; i++) {
    scanf("%d", &a[i]);
    was[a[i]] = 1;
  }
  scanf("%d", &q);
  for (int i = 0; i < q; i++) {
    int first;
    scanf("%d", &first);
    int ans = k + 1;
    for (int j = 0; j < n; j++) {
      for (int k1 = 1; k1 <= k; k1++) {
        if (first == a[j] * k1) {
          ans = min(ans, k1);
        }
        if (first > a[j] * k1) {
          int val = first - a[j] * k1;
          for (int k2 = 1; k2 + k1 <= k; k2++) {
            if (val % k2 == 0 && val / k2 < MX && was[val / k2] == 1) {
              ans = min(ans, k1 + k2);
            }
          }
        }
      }
    }
    printf("%d\n", ans > k ? -1 : ans);
  }
  return 0;
}
