import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.*;
public class D1003 {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        //Scanner sc = new Scanner(System.in);
        List<Integer> list = new ArrayList<>(Arrays.asList(1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,
        65536,131072,262144,524288,1048576,2097152,4194304,8388608,16777216,33554432,67108864,134217728,268435456,536870912,1073741824));
        boolean[] mark = new boolean[list.size()];
        
        Map<Integer, Integer> map = new HashMap<>();
        for (int i : list) {
            map.put(i, 0);
        }
        //int n = sc.nextInt();
        //int q = sc.nextInt();
        String bb = br.readLine();
        int n = Integer.parseInt((String.valueOf(bb.charAt(0))));
        
        int q = Integer.parseInt((String.valueOf(bb.charAt(2))));
        int[] lol = new int[list.size()];
        String xx = br.readLine();
        int g = 0;
        for (int i=0; i<n; i++) {
            int x = Integer.parseInt(String.valueOf(xx.charAt(g)));
            g += 2;
            int p = x;
        	int c = 0;
        	while (p%2==0) {
        		p = p >> 1;
        		c++;
        	}
            mark[c] = true;
            lol[c] = 1;
            map.put(x, map.get(x)+1);
        }
        List<Integer> list1 = new ArrayList<>();
        for (int i=0;i<list.size();i++) {
            if (lol[i]==1) list1.add(list.get(i));
        }
        //System.out.println(list1.size());
        Collections.sort(list1, Collections.reverseOrder());
        for (int j=0; j<q; j++) {
            int count = 0;
            int val = Integer.parseInt(br.readLine());
            for (int i=0; i<list1.size(); i++) {
                int mm = list1.get(i);
                int x = val / mm;
                if (x > 0) {
                    int mm1 = map.get(mm);
                    val -= (Math.min(x,mm1)*mm);
                    count += Math.min(x,mm1);
                    //System.out.println(x);
                }
                if (val == 0) break;
            }
            if (val == 0) {
                System.out.println(count);
            } else {
                System.out.println(-1);
            }
        }
    }
}