import java.io.*;
import java.lang.*;
public class CF1003D{
    public static void main(String args[]) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] s = br.readLine().split(" ");
        int n = Integer.parseInt(s[0]);
        int q = Integer.parseInt(s[1]);
        s = br.readLine().split(" ");
        StringBuffer sb = new StringBuffer();
        int[] powers = new int[31];
        powers[0] = 1;
        for(int i=1;i<31;i++){
            powers[i] = powers[i-1] * 2;
        }
        int[] count = new int[31];
        for(int i=0;i<n;i++){
            int a = Integer.parseInt(s[i]);
            for(int j=0;j<31;j++){
                if(powers[j] == a){

                    count[j]++;
                    //System.out.println(":"+count[j]+" "+a);
                    break;
                }
            }
        }
        int ans;
        for(int i=0;i<q;i++){
            int a = Integer.parseInt(br.readLine());
            ans = 0;
            /*int[] c1 = new int[31];
            for(int j=0;j<31;j++){
                c1[j] = count[j];
            }*/
            for(int j=30;j>=0;j--){
                if(powers[j] <= a && count[j] > 0){
                    //System.out.println(a);
                    int c = Math.min(count[j], a/powers[j]);
                    ans += c;
                    a -= powers[j]*c;
                    //j++;
                }
            }
            if(a>0){
                sb.append("-1\n");
            }else{
                sb.append(ans+"\n");
            }
        }
        System.out.println(sb);

    }
}
