#include <bits/stdc++.h>
using namespace std;
map<int, int> mp[21];
int num;
int n, m, k;
void solve(int goal) {
  for (int i = 1; i <= k; i++) {
    for (int j = 0; j < n; j++) {
      if (mp[i].find(goal) != mp[i].end()) {
        num = i;
        break;
      }
    }
    if (num != 1e9) break;
  }
  map<int, int>::iterator it;
  for (int i = 1; i <= k; i++) {
    for (it = mp[i].begin(); it != mp[i].end(); it++) {
      int sum = it->first;
      if (sum > goal) break;
      for (int z = 1; z <= k; z++) {
        if (i + z > k) break;
        if (mp[z].count(goal - sum)) {
          num = min(num, i + z);
        }
      }
    }
  }
  return;
}
int main() {
  cin >> n >> k;
  for (int i = 0; i < n; i++) {
    int x;
    cin >> x;
    for (int j = 1; j <= k; j++) {
      mp[j][x * j] = 1;
    }
  }
  cin >> m;
  for (int i = 0; i < m; i++) {
    int x;
    cin >> x;
    num = 1e9;
    solve(x);
    if (num == 1e9) {
      cout << -1 << endl;
    } else {
      cout << num << endl;
    }
  }
}
