#include <bits/stdc++.h>
using namespace std;
int n, k, d[100005], m;
int mp[10000005];
int main() {
  scanf("%d %d", &n, &k);
  for (int i = 0; i < n; i++) {
    scanf("%d", &d[i]);
    mp[d[i]] = 1;
  }
  scanf("%d", &m);
  for (int qq = 0; qq < m; qq++) {
    int o;
    scanf("%d", &o);
    int cev = 1000000000;
    for (int i = 0; i < n; i++)
      for (int j = 1; j <= k; j++) {
        if (d[i] * j == o) {
          cev = min(cev, j);
          break;
        }
        for (int t = 1; t <= k - j; t++)
          if ((o - d[i] * j) % t == 0 && ((o - d[i] * j) / t) >= 0 &&
              ((o - d[i] * j) / t) < 10000005 && mp[(o - d[i] * j) / t])
            cev = min(cev, j + t);
      }
    printf("%d\n", cev == 1000000000 ? -1 : cev);
  }
}
