#include <bits/stdc++.h>

using namespace std;
/*lower_bound:
postoji u nizu=>indeks prvog pojavljivanja
ne postoji u nizu=>indeks prvog veceg elementa
ne postoji i veci je od najveceg elementa=>izbacuje duzinu niza
*/
/*upper_bound:
uvek izbacuje indeks prvog veceg elementa
ako je element veci od najveceg izbacuje duzinu niza
*/
int markoss[200020];
int rezz[200020];
vector<int>glasovi;
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    int n, q;
    cin>>n>>q;

    for(int i=0; i<n; i++)
    {
        int a; cin>>a;
        glasovi.push_back(a);
    }
    sort(glasovi.begin(), glasovi.end());
    for(int i=0; i<q; i++)cin>>markoss[i];

    for(int i=0; i<q; i++)
    {
        int low=lower_bound(glasovi.begin(), glasovi.end(), markoss[i])-glasovi.begin();
        int up=upper_bound(glasovi.begin(), glasovi.end(), markoss[i])-glasovi.begin();
        if(glasovi[low]!=markoss[i])
        {
            if(up<n-up)rezz[i]=1+n-2*up;
            else if(up==n-up or up==n-up+1)rezz[i]=1;
            else rezz[i]=2*up-n;
        }
        else
        {
            if(n/2>=low and n/2<up)rezz[i]=0;
            else if(n/2<low)rezz[i]=2*low-n;
            else
            {
                rezz[i]=n-2*up+1;
            }
        }
    }
    for(int i=0; i<q; i++)cout<<rezz[i]<<"\n";
    return 0;
}