import java.util.*;
import java.io.*;


public class D1003{
	public static void main(String args[])throws IOException{
		Scanner sc=new Scanner(new BufferedReader(new InputStreamReader(System.in)));
		int n=sc.nextInt();
		int q=sc.nextInt();
		int arr[]=new int[31];
		for(int i=0;i<n;i++){
			int p=new StringBuilder(Integer.toBinaryString(sc.nextInt())).reverse().toString().indexOf('1');
			if(p!=-1)
			arr[p]++;
		}PrintWriter pw=new PrintWriter(System.out);
		// for(int i=0;i<31;i++)
		// 	System.out.println(arr[i]);
		for(int i=0;i<q;i++){
			int b=sc.nextInt();
			int count=0;
			for(int j=30;j>=0;j--){
				if(arr[j]!=0){

					int no=Math.min(arr[j],b/((int)Math.pow(2,j)));
					
				count+=no;
				b=b-((int)Math.pow(2,j)*no);
				//System.out.println(j+" "+no+" "+b);
				if(b==0) break;
				}
			}
			if(b>0)
				pw.println(-1);
			else
			pw.println(count);

		}
		pw.close();

	}
}