using System;
using System.Collections.Generic;
class Program
	{
	static int NadjiBroj(int desniInd, List<int> lista, int trazBroj, int leviInd)
		{
			if(desniInd >= leviInd)
			{
				int srednjiInd = (desniInd - leviInd) / 2 + leviInd;
				if(lista[srednjiInd] == trazBroj)
					{ return srednjiInd; }
				if(lista[srednjiInd] > trazBroj)
					{ return NadjiBroj(srednjiInd - 1, lista, trazBroj, leviInd); }
				else
					{ return NadjiBroj(desniInd, lista, trazBroj, srednjiInd + 1); }
			}

			return -1;

		}
	static void Main(string[] args)
		{
		string[] bambam = Console.ReadLine().Split(' ');
		int N = int.Parse(bambam[0]), Q = int.Parse(bambam[1]);
		List<int> brojevi = new List<int>();
		string[] mabmab = Console.ReadLine().Split(' ');
		int[] nizQ = new int[Q];
		for (int i = 0; i < N; i++)
			{
			brojevi.Add(int.Parse(mabmab[i]));
			}
		string[] bammab = Console.ReadLine().Split(' ');
		for (int i = 0; i < Q; i++)
			{
			nizQ[i] = int.Parse(bammab[i]);
			}

		brojevi.Sort();
		for (int i = 0; i < Q; i++)
			{
			
				int pozicija = NadjiBroj(N-1, brojevi, nizQ[i], 0);
			if (pozicija != -1)
				{
					int desni = N - 1 - pozicija;
					int levi = pozicija;

					int brojPotrebnih = levi - desni - 1;
					
				if (desni > levi)
					{
					brojPotrebnih = desni - levi;
					}
					if(desni == levi){ brojPotrebnih = 0; }
					if (brojPotrebnih < 0) { brojPotrebnih *= -1; }
					Console.WriteLine(brojPotrebnih);
				}
			else
				{
					brojevi.Add(nizQ[i]);
					brojevi.Sort();
					N += 1;
					int pozicija2 = NadjiBroj(N-1, brojevi, nizQ[i], 0);
					int desni = N - pozicija2 -1;
					int levi = pozicija2;
					int brojPotrebnih = levi - desni-1;
					if (desni > levi)
					{
					brojPotrebnih = desni - levi;
					}
					if (desni == levi){ brojPotrebnih = 0; }
					else if( pozicija2 != N / 2 - 1 ){ brojPotrebnih += 1; }
					if(brojPotrebnih < 0){ brojPotrebnih *= -1; }
					Console.WriteLine(brojPotrebnih);
					brojevi.Remove(nizQ[i]);
					N -= 1;
				}
		
			}

		}
	}