#include <bits/stdc++.h>
using namespace std;
map<int, int> C;
int a[200100], i, j, n, k, q;
int main() {
  scanf("%d%d", &n, &k);
  for (i = 1; i <= n; i++) scanf("%d", &a[i]);
  for (i = 1; i <= n; i++)
    for (j = 1; j <= k; j++)
      if (!C[a[i] * j])
        C[a[i] * j] = j;
      else
        C[a[i] * j] = min(C[a[i] * j], j);
  scanf("%d", &q);
  for (i = 1; i <= q; i++) {
    int s, l, mn = 999999999;
    scanf("%d", &s);
    for (j = 1; j <= n; j++)
      for (l = 1; l <= k; l++) {
        if (s < a[j] * l) break;
        if (s == a[j] * l)
          mn = min(mn, l);
        else if (C[s - a[j] * l])
          mn = min(mn, l + C[s - a[j] * l]);
      }
    if (mn == 999999999 || mn > k)
      printf("-1\n");
    else
      printf("%d\n", mn);
  }
  return 0;
}
