#include <bits/stdc++.h>
int main() {
  int n, q, x;
  std::set<int> s;
  std::map<int, int> mapa;
  scanf("%d%d", &n, &q);
  for (int i = 0; i < n; i++) {
    scanf("%d", &x);
    mapa[x]++;
    s.insert(x);
  }
  for (int i = 0; i < q; i++) {
    scanf("%d", &x);
    int wynik = 0;
    for (auto it = s.rbegin(); it != s.rend(); it++) {
      int ile = std::min(mapa[*it], x / *it);
      wynik += ile;
      x -= *it * ile;
    }
    x == 0 ? printf("%d\n", wynik) : printf("-1\n");
  }
  return 0;
}
