#include <bits/stdc++.h>
int a[5001], bil[10000001] = {0};
int main() {
  int n;
  int k, x, i, j, l, q;
  int solu;
  scanf("%d%d", &n, &k);
  for (i = 1; i <= n; i++) {
    scanf("%d", &a[i]);
    bil[a[i]] = 1;
  }
  scanf("%d", &q);
  while (q--) {
    scanf("%d", &x);
    solu = k + 1;
    for (i = 1; i <= n; i++) {
      for (j = 1; j <= k && j * a[i] <= x; j++) {
        if (x - j * a[i] == 0) {
          if (j < solu) solu = j;
        } else {
          for (l = 1; l + j <= k; l++) {
            if ((x - j * a[i]) % l == 0 && (x - j * a[i]) / l < 10000001 &&
                bil[(x - j * a[i]) / l] == 1) {
              if (j + l < solu) solu = j + l;
              break;
            }
          }
        }
      }
    }
    printf("%d\n", solu > k ? -1 : solu);
  }
  return 0;
}
