using System;

namespace zadatak2
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] red = Console.ReadLine().Split();
            long n = Convert.ToInt64(red[0]);
            long q = Convert.ToInt64(red[1]);
            red = Console.ReadLine().Split();
            long[] nizOcena = new long[red.Length];
            int[] resenja = new int[q];
            for(int i=0;i<nizOcena.Length;i++)
            {
                nizOcena[i] = Convert.ToInt64(red[i]);
            }
            red = Console.ReadLine().Split();
            Tuple<long, int>[] nizMedijana = new Tuple<long, int>[red.Length];
            for (int i = 0; i < nizMedijana.Length; i++)
            {
                nizMedijana[i] = new Tuple<long, int>(Convert.ToInt64(red[i]), i);
            }
            Array.Sort(nizOcena);
            Array.Sort(nizMedijana);
            int pozicijaUNizu = 0;
            int pozicijaPrvog = 0;
            for (int i=0;i<nizMedijana.Length;i++)
            {
                while (pozicijaUNizu < n && nizOcena[pozicijaUNizu] < nizMedijana[i].Item1) 
                    pozicijaUNizu++;

                if(i == 0 || nizMedijana[i].Item1 != nizMedijana[i-1].Item1)
                {
                    pozicijaPrvog = pozicijaUNizu;
                    while (pozicijaUNizu < n && nizOcena[pozicijaUNizu] == nizMedijana[i].Item1)
                        pozicijaUNizu++;
                }
                
                if(pozicijaUNizu == pozicijaPrvog)
                {
                    
                    resenja[nizMedijana[i].Item2] = 1 + Math.Abs(pozicijaUNizu - ((int)n - pozicijaUNizu));
                    if ((int)n - pozicijaUNizu < pozicijaUNizu)
                        resenja[nizMedijana[i].Item2]--;
                }
                else
                {
                   
                    int gde = (int)Math.Floor((decimal)n / 2);
                    if (pozicijaPrvog <= gde && gde < pozicijaUNizu)
                    {
                        resenja[nizMedijana[i].Item2] = 0;
                    }
                    else
                    {
                        if(pozicijaUNizu <= gde)
                        {
                            resenja[nizMedijana[i].Item2] = ((int)n - pozicijaUNizu) - pozicijaUNizu+1;
                        }
                        else
                        {
                            resenja[nizMedijana[i].Item2] = (pozicijaPrvog) - ((int)n - pozicijaUNizu)-1;
                        }
                    }
                    
                }
            }

            for (int i = 0; i < resenja.Length; i++)
            {
                Console.WriteLine(resenja[i]);
            }
        }
    }
}