#include <bits/stdc++.h>
using namespace std;
int ar[11000111];
int el[5100];
int q, x, k, n;
long long t;
int min(int a, int b) {
  if (a < b) {
    return a;
  }
  return b;
}
int main() {
  scanf("%d", &n);
  scanf("%d", &k);
  for (int i = 0; i < n; ++i) {
    scanf("%d", &x);
    ar[x] = 1;
    el[i] = x;
  }
  scanf("%d", &q);
  for (int qq = 0; qq < q; ++qq) {
    scanf("%I64d", &t);
    int ans = 100;
    for (int i = 0; i < n; ++i) {
      for (int j = 0; j < k + 1; ++j) {
        long long temp = t - el[i] * j;
        if (temp > 0) {
          for (int l = 1; l <= k - l + 1; ++l) {
            if (temp % l == 0 && temp / l <= 10111000 && ar[temp / l] == 1) {
              ans = min(ans, l + j);
            }
          }
        }
      }
    }
    if (ans <= k) {
      printf("%d\n", ans);
    } else {
      printf("-1\n");
    }
  }
  return 0;
}
