#include <bits/stdc++.h>
using namespace std;

long long n, q, A[1005], B[1005], medijana, medijanapoz, pozicija, razmak;
int i, j;

int main()
{
    scanf("%lld %lld\n", &n, &q); //Unos N i Q

    for(i = 1; i <= n; i++)
        scanf("%lld", &A[i]); //Vrednosti listica u kutiji

    sort(A+1, A+n+1); //Sortiranje vrednosti listica

    medijana = A[n/2 + 1]; //Medijana i njena pozicija (vazi i za paran i za neparan broj elemenata A)
    medijanapoz = n/2 + 1;

    for(i = 1; i <= q; i++)
        scanf("%lld", &B[i]); //Unos Markosovih zelja

    for(i = 1; i <= q; i++)
    {
        if(B[i] == medijana)
            printf("0\n"); //Ako je vec medijana, nema dodavanja
        if(B[i] < A[1])
            printf("%lld\n", n+1); //Ako je manji od najmanjeg, mora n+1 listica da se doda
        if(B[i] > A[n])
            printf("%lld\n", n); //Ako je veci od najveceg, mora n listica da se doda
        if(B[i] == A[1] || B[i] == A[n])
            printf("%lld\n", n-1); //Ako je jednak najmanjem ili najvecem, mora n-1 listica da se doda


        //Ako je unutar niza, racunamo razdaljinu od medijane i na osnovu toga i koliko brojeva treba ubaciti
        if(B[i] < A[n] && B[i] > A[1])
        {
            for (j = 1; j <= n; j++)
                if(B[i] == A[j])
                {
                   pozicija = j;
                   break;
                }


            razmak = abs(pozicija - medijanapoz);

            if(n%2 == 0)
            {
                    if(B[i] < medijana)
                        printf("%lld\n", 2*razmak - 1);
                    if(B[i] > medijana)
                        printf("%lld\n", 2*razmak);
            }
            else
            {
                    if(B[i] > medijana)
                        printf("%lld\n", 2*razmak - 1);
                    if(B[i] < medijana)
                        printf("%lld\n", 2*razmak);
            }
        }

    }
    return 0;
}