RT
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 3e6 + 10;
ll n, q, a[N];
unordered_set<ll> occ;
unordered_map<ll, ll> dp;
ll solve(ll pos) {
if(pos < 1) return 0;
if(dp[pos]) return dp[pos];
if(occ.count(pos)) return 0;
/*
ll chess = lower_bound(a + 1, a + 1 + n, pos) - a - 1;
if(chess < 1 || chess > n) return 0;
chess = a[chess];
*/
ll chess = n;
while(a[chess] > pos && chess > 0) chess -- ;
if(chess < 1) return 0;
chess = a[chess];
ll nex = (chess << 1) - pos;
if(occ.count(nex)) return 0;
if(nex < 1) return dp[pos] = 1;
return dp[pos] = 1 + solve(nex);
}
int main() {
scanf("%lld%lld", &n, &q);
for(int i = 1; i <= n; i ++ ) {
scanf("%lld", a + i);
occ.insert(a[i]);
}
sort(a + 1, a + 1 + n);
while(q -- ) {
ll pos = 0; scanf("%lld", &pos);
printf("%lld\n", solve(pos));
}
return 0;
}