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

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Main {
    public static void main(String[] args) throws IOException {
        Reader.init(System.in);
        int n = Reader.nextInt(), k = Reader.nextInt();

        int ar[] = new int [60] ;
        for(int i = 0 ; i < n ; i++){
            int in = Reader.nextInt() ;
            if(in == 1)
                ar[0] = 1 ;
            else {
                int val = 1;
                for (int j = 1; j < 32; j++) {
                    val *= 2;
                    if (val == in) {
                        ar[j] += 1;
                        break;
                    }

                }
            }
        }
        StringBuilder ans = new StringBuilder() ;
        while(k-- != 0){
            long a = Reader.nextInt() ;
            int count = 0 ;
            for(int i = 32 ; i >= 0 ; i--){
                if(ar[i] != 0){
                    double po = Math.pow(2,i) ;
                    if(po <= a){
                        int y = (int) (a / po) ;
                        int mins = Math.min(ar[i],y) ;
                        count += mins ;
                        a -= mins * po ;
                    }
                }
            }
            if(a == 0){
                ans.append(count+"\n") ;
            }
            else
                ans.append("-1\n") ;

        }
        System.out.println(ans);


    }

}


class pair {
    int a, b;

    pair(int a, int b) {
        this.a = a;
        this.b = b;
    }
}

class Reader {
    static BufferedReader reader;
    static StringTokenizer tokenizer;


    static void init(InputStream input) {
        reader = new BufferedReader(
                new InputStreamReader(input));
        tokenizer = new StringTokenizer("");
    }


    static String next() throws IOException {
        while (!tokenizer.hasMoreTokens()) {

            tokenizer = new StringTokenizer(
                    reader.readLine());
        }
        return tokenizer.nextToken();
    }

    static int nextInt() throws IOException {
        return Integer.parseInt(next());
    }

    static int nextShort() throws IOException {
        return Short.parseShort(next());
    }

    static double nextDouble() throws IOException {
        return Double.parseDouble(next());
    }

    static long nextLong() throws IOException {
        return Long.parseLong(next());
    }
}