#include <bits/stdc++.h>
using namespace std;
map<int, int> mp;
int n, k, m, d[5005], ans;
int main() {
  scanf("%d %d", &n, &k);
  mp[0] = 0;
  for (int i = 1; i <= n; i++) {
    scanf("%d", &d[i]);
    int q = 0;
    for (int j = 1; j <= k; j++) {
      q += d[i];
      if (!mp.count(q) || mp[q] > j) mp[q] = j;
    }
  }
  scanf("%d", &m);
  for (int i = 1; i <= m; i++) {
    int q = 0, v;
    ans = 50000000;
    scanf("%d", &v);
    for (int j = 1; j <= n; j++) {
      q = 0;
      for (int l = 1; l <= k; l++) {
        q += d[j];
        if (mp.count(v - q) && mp[v - q] + l <= k)
          ans = min(ans, mp[v - q] + l);
      }
    }
    printf("%d\n", ans < 5000000 ? ans : -1);
  }
}
