#include<bits/stdc++.h>
using namespace std;
int calc(int n){
int ans =0;
if(n==0)
return 0;
else{
while(n!=1){
ans+= n%2;
n=n/2;
}
ans+=1;
}
return ans;
}
int fun(int arr[],int x,int k,int n){
int val=0;
for(int i=1;i<=x;i++){
val+=arr[i];
}
if(val>=k)
return true;
for(int i=x+1;i<=n;i++){
val-=arr[i-x];
val+=arr[i];
if(val>=k)
return true;
}
return false;
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n,q;
cin>>n>>q;
int arr[100001];
arr[0]=0;
for(int i=1;i<=n;i++){
int temp;
cin>>temp;
arr[i]=calc(temp);
}
while(q--){
int k;
cin>>k;
int ans=INT_MAX;
int l=1,r=100000;
while(l<=r){
int mid =l+ ((r-l)/2);
if( fun(arr,mid,k,n) ){
ans=min(ans,mid);
r=mid-1;
}
else
l=mid+1;
}
if(ans==INT_MAX)
cout<<-1<<"\n";
else
cout<<ans<<"\n";
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IGNhbGMoaW50IG4pewoJaW50IGFucyA9MDsKCWlmKG49PTApCgkJcmV0dXJuIDA7CgllbHNlewoJCXdoaWxlKG4hPTEpewoJCQlhbnMrPSBuJTI7CgkJCW49bi8yOwoJCX0KCQlhbnMrPTE7Cgl9CglyZXR1cm4gYW5zOwp9CmludCBmdW4oaW50IGFycltdLGludCB4LGludCBrLGludCBuKXsKCWludCB2YWw9MDsKCWZvcihpbnQgaT0xO2k8PXg7aSsrKXsKCQl2YWwrPWFycltpXTsKCX0KCWlmKHZhbD49aykKCQlyZXR1cm4gdHJ1ZTsKCWZvcihpbnQgaT14KzE7aTw9bjtpKyspewoJCXZhbC09YXJyW2kteF07CgkJdmFsKz1hcnJbaV07CgkJaWYodmFsPj1rKQoJCQlyZXR1cm4gdHJ1ZTsKCX0KCXJldHVybiBmYWxzZTsKfQoKaW50IG1haW4oKXsKCWlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CgljaW4udGllKDApOwoJY291dC50aWUoMCk7CglpbnQgbixxOwoJY2luPj5uPj5xOwoJaW50IGFyclsxMDAwMDFdOwoJYXJyWzBdPTA7Cglmb3IoaW50IGk9MTtpPD1uO2krKyl7CgkJaW50IHRlbXA7CgkJY2luPj50ZW1wOwoJCWFycltpXT1jYWxjKHRlbXApOwoJfQkKCXdoaWxlKHEtLSl7CgkJaW50IGs7CgkJY2luPj5rOwoJCWludCBhbnM9SU5UX01BWDsKCQlpbnQgbD0xLHI9MTAwMDAwOwoJCXdoaWxlKGw8PXIpewoJCQlpbnQgbWlkID1sKyAoKHItbCkvMik7CgkJCWlmKCBmdW4oYXJyLG1pZCxrLG4pICl7CgkJCQlhbnM9bWluKGFucyxtaWQpOwoJCQkJcj1taWQtMTsKCQkJfQoJCQllbHNlCQoJCQkJbD1taWQrMTsKCQl9CgkJaWYoYW5zPT1JTlRfTUFYKQoJCQljb3V0PDwtMTw8IlxuIjsKCQllbHNlCQoJCQljb3V0PDxhbnM8PCJcbiI7Cgl9CgoJCn0JCg==