#include <bits/stdc++.h>
using namespace std;
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long n, k;
  cin >> n >> k;
  long long arr[n];
  map<long long, long long> mp;
  map<long long, long long> dp;
  for (long long i = 0; i < n; i++) {
    cin >> arr[i];
    mp[arr[i]] = 1;
  }
  for (long long i = 0; i < n; i++) {
    for (long long j = 1; j <= k; j++) {
      if (dp[arr[i] * j] != 0)
        dp[arr[i] * j] = min(dp[arr[i] * j], j);
      else
        dp[arr[i] * j] = j;
    }
  }
  sort(arr, arr + n);
  long long q;
  cin >> q;
  while (q--) {
    long long x;
    cin >> x;
    long long ans = INT_MAX;
    for (long long i = n - 1; i >= 0; i--) {
      if (arr[i] <= x) {
        for (long long z = 1; z <= k; z++) {
          long long val = z;
          long long f = x;
          f -= val * arr[i];
          long long res = val;
          if (res > k) continue;
          if (f == 0) {
            ans = min(ans, res);
            continue;
          }
          res += dp[f];
          if (dp[f] != 0) ans = min(ans, res);
        }
      }
    }
    if (ans > k) ans = -1;
    cout << ans << "\n";
  }
  return 0;
}
