#include <iostream>
#include<algorithm>
#include<string>
#include <vector>

using namespace std;

int main()
{
    int n, m;

    cin >> n >> m;

    vector<int> A;
    vector<int> B;

    for(int i = 0; i < n; i++)
    {
        int ulaz;

        cin >> ulaz;

        A.push_back(ulaz);
    }

    for(int i = 0; i < m; i++)
    {
        int ulaz;

        cin >> ulaz;

        B.push_back(ulaz);
    }

    sort(A.begin(), A.end());

    for(int i = 0; i < m; i++)
    {
        int brojac = 0;
        int medijana = A[(n - 1) / 2];

        if(A.size() == lower_bound(A.begin(), A.end(), B[i]) - A.begin())
        {
            int najblizi = B[i];
            int a = (n - 1) / 2;
            
            int b = 0;
            int prethodni = A[a];

            while(b == 0)
            {
                prethodni = A[a];
                if(abs(A[min(a + a / 2, n)] - najblizi) < prethodni)
                {
                    a = min(a + a / 2, n);
                }
                else if(abs(A[min(a - a / 2, n)] - najblizi) > prethodni)
                {
                    a = min(a - a / 2, n);
                }
                else
                {
                    b = 1;
                }
            }

            brojac = 1 + abs(a);
        }
        else
        {
            int lokacija;
            if(B[i] >= medijana)
            {
                lokacija = lower_bound(A.begin(), A.end(), B[i]) - A.begin();
            }
            else
            {
                lokacija = upper_bound(A.begin(), A.end(), B[i]) - A.begin();
            }

            brojac = abs(lokacija - ((n - 1) / 2));
        }

        cout << brojac << endl;
    }
}