

import java.math.BigDecimal;//閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷峰皬閿熸枻鎷�
import java.math.BigInteger;
import java.awt.Checkbox;
import java.io.BufferedInputStream;
import java.util.Scanner;



import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;


public class Main{
	
	
    public static void main(String []args){    
        Scanner scan=new Scanner(System.in);
       	int n=scan.nextInt();
       	int k=scan.nextInt();
       	int[] a=new int[32];//拥有次方的个数
       	int[] two=new int[32];
       	HashMap<Integer, Integer> map=new HashMap<Integer, Integer>();
       	int x;
       	two[0]=1;
       	map.put(1,0);
       	for(int i=1;i<=30;i++) {
       		x=2*two[i-1];
       		two[i]=x;
       		map.put(x, i);
       	}
       	for(int i=1;i<=n;i++) {
       		x=scan.nextInt();
       		a[ map.get(x) ]++;
       		
       	}
       	
       	for(int i=1;i<=k;i++) {
       		x=scan.nextInt();
       		if(x%2==1) {
       			System.out.println(-1);
       		}else {
       			int ans=0;
       			for(int j=30;j>=1;j--) {
       				if(a[j]!=0 && x>=two[j]) {
       					int num=x/two[j];
       					if(num>a[j])
       						num=a[j];
       					ans+=num;
       					x=x-num*two[j];
       				}
       			}
       			if(x==0)
       				System.out.println(ans);
       			else 
       				System.out.println(-1);
       			
       		}
       	}
       	
       	
    }

    
    
    
}


/*

8 8 8 2  



*/
			  		   	 	  		   	 	  	 	