#include <iostream>
#include <algorithm>
using namespace std;

using int64 = int64_t;

#define MAX_N 200000
#define MAX_Q 200000

int A[MAX_N];

int main()
{
	int n, q;

	cin >> n >> q;

	int m = n / 2;

	for (int i = 0; i < n; ++i)
		cin >> A[i];

	sort(A, A + n);

	for (int i = 0; i < q; ++i)
	{
		int b;
		cin >> b;
		int prvi = lower_bound(A, A + n, b) - A;

		if (prvi == n)						//Svi su manji od b
			printf("%i\n", n);
		else if (prvi == 0 && A[prvi] != b)	//Svi su veci od b
			printf("%i\n", n + 1);
		else
		{
			int d = (A[prvi] != b);

			if (A[prvi] != b)
			{
				int pre = prvi;
				int posle = n - prvi;
				if (pre < posle) //Nalazi se u manjoj polovini
					printf("%i\n", posle - pre + 1);
				else if (pre == posle)
					printf("1\n");
				else
					printf("%i\n", pre - posle);
			}
			else
			{
				if (prvi > m)
				{
					int pre = prvi;
					int posle = n - pre - 1;
					printf("%i\n", pre - posle - 1);
				}
				else
				{
					int poslednji = upper_bound(A + prvi, A + n, b) - A;

					if (poslednji < m)
					{
						int pre = poslednji;
						int posle = n - pre - 1;

						printf("%i\n", posle - pre);
					}
					else
					{
						printf("0\n");
					}
				}
			}
		}
	}

	
 	return 0;


}