#include <bits/stdc++.h>
using namespace std;
const int inf = 0x3fffffff;
const long long mod = 1000000007;
const int maxn = 5000 + 100;
int a[maxn];
vector<int> V[maxn];
int main() {
  int n, k;
  scanf("%d%d", &n, &k);
  for (int i = 1; i < n + 1; i++) scanf("%d", &a[i]);
  sort(a + 1, a + n + 1);
  for (int i = 1; i < k + 1; i++)
    for (int j = 1; j < n + 1; j++) V[i].push_back(i * a[j]);
  int q;
  scanf("%d", &q);
  while (q--) {
    int x;
    scanf("%d", &x);
    int ans = inf;
    for (int i = n + 1 - 1; i >= 1; i--) {
      for (int j = 0; a[i] * j <= x && j <= k; j++) {
        int sum = a[i] * j;
        if (sum == x) {
          ans = min(ans, j);
          continue;
        }
        for (int s = 1; s <= k - j; s++) {
          int p = (int)(lower_bound(V[s].begin(), V[s].end(), x - sum) -
                        V[s].begin());
          if (p < V[s].size() && V[s][p] == x - sum) ans = min(ans, j + s);
        }
      }
    }
    if (ans >= inf)
      puts("-1");
    else
      printf("%d\n", ans);
  }
  return 0;
}
