#include <bits/stdc++.h>
using namespace std;
int n, a[100100], q, k, x;
int gt(int x) {
  int ct = 41;
  for (int i = 1; i <= k; ++i) {
    for (int j = 1; j <= n; ++j) {
      if (i * a[j] == x) {
        ct = min(ct, i);
        continue;
      };
      for (int g = 1; g <= k - i; ++g) {
        if ((x - i * a[j]) % g != 0) continue;
        int ans = (x - i * a[j]) / g;
        int L = 1;
        int R = j;
        while (L + 1 < R) {
          int mid = (L + R) / 2;
          if (a[mid] <= ans) {
            L = mid;
          } else {
            R = mid;
          }
        }
        if (a[L] == ans) ct = min(ct, i + g);
      }
    }
  }
  if (ct > 20) return -1;
  return ct;
}
int main() {
  scanf("%d%d", &n, &k);
  for (int i = 1; i <= n; ++i) {
    scanf("%d", &a[i]);
  }
  scanf("%d", &q);
  for (int i = 0; i < q; ++i) {
    scanf("%d", &x);
    printf("%d\n", gt(x));
  }
  return 0;
}
