#include <bits/stdc++.h>
using namespace std;
#define int long long 

main()
{
    int n,q;
    cin>>n>>q;
    int arr[n];
    for(int i=0;i<n;i++){
    	int x;
    	cin>>x;
    	arr[i] = log2(x);
    }
    int hash1[28] = {0};
    for(int i=0;i<n;i++){
    	hash1[arr[i]]++;
    }
    while(q--)
    {
    	int x;
    	cin>>x;
	    vector<int> v;
	    while (x > 0) 
	    {
	        v.push_back(x % 2);
	        x = x / 2;
	    }
		vector<int> p;
	    for (int i = 0; i < v.size(); i++) 
	    {
	        if (v[i] == 1) 
	        {
	            p.push_back(i);
	        }
	    }
	    int hash[28] = {0};
	    for(int i=0;i<p.size();i++) {
	    	hash[p[i]]++;
	    }
	    bool flag =true;
	    for(int i=0;i<28;i++){
	    	if(hash[i]>hash1[i]){
	    		cout<<-1<<"\n";
	    		flag = false;
	    	}
	    }
	    if(flag) cout<<p.size()<<"\n";
    }
    return 0;
}