#include <bits/stdc++.h>
using namespace std;
const int N = 15000000, M = 5005;
int dp[N], n, k, a[M];
set<int> s[23];
int main() {
  scanf("%d%d", &n, &k);
  for (int i = 1; i <= n; i++) scanf("%d", a + i);
  s[0].insert(0);
  for (int i = 1; i <= k; i++)
    for (int j = 1; j <= n; j++) s[i].insert(i * a[j]);
  int q, x, ans;
  for (scanf("%d", &q); q--;) {
    scanf("%d", &x);
    ans = -1;
    for (int t = 1; t <= k && ans < 0; t++)
      for (int i = 1; i <= n && ans < 0; i++) {
        for (int j = 1; j <= t; j++)
          if (s[t - j].find(x - j * a[i]) != s[t - j].end()) {
            ans = t;
            break;
          }
      }
    printf("%d\n", ans);
  }
  return 0;
}
