#include <bits/stdc++.h>
using namespace std;
int main() {
  int n;
  int k;
  cin >> n >> k;
  vector<int> d;
  int x;
  for (int i = 0; i < n; i++) {
    cin >> x;
    d.push_back(x);
  }
  int q;
  int p;
  cin >> q;
  for (int i = 0; i < q; i++) {
    cin >> p;
    int t1 = 0;
    int t2 = 0;
    int f = 0;
    int min = k;
    int flag = 0;
    for (t1 = 0; t1 <= k; t1++) {
      for (t2 = 0; t2 <= k - t1; t2++) {
        for (int poi = (int)d.size() - 1; poi > -1; poi--) {
          int val = p - t1 * d[poi];
          int l = 0;
          int r = (int)d.size() - 1;
          f = 0;
          while (l <= r) {
            int m = (l + r) / 2;
            if (t2 * d[m] == val) {
              f = 1;
              flag = 1;
              break;
            }
            if (t2 * d[m] < val) {
              l = m + 1;
            } else
              r = m - 1;
          }
          if (f) {
            if (t1 + t2 < min) {
              min = t1 + t2;
            }
          }
        }
        if (f) {
          if (t1 + t2 < min) {
            min = t1 + t2;
          }
        }
      }
      if (f) {
        if (t1 + t2 < min) {
          min = t1 + t2;
        }
      }
    }
    if (flag)
      cout << min;
    else
      cout << -1;
    cout << endl;
  }
}
