#include <iostream>
#include <map>
#include <algorithm>

using namespace std;

map <long long, long long> prvi;
map <long long, long long> poslednji;

long long a[200100];
long long b[200100];
long long n;

bool sort1(long long a, long long b) {

  return a < b;

}

long long Izracunaj(long long poz, long long duzina_niza) {

  duzina_niza--;

  //  0 1 2 3 4 5 6

  long long levo = poz;
  long long desno = duzina_niza - poz;

  long long U = 0;

  // 0 1 2 3 4
  // 0 1 2 3 4 5
  if (levo == desno || desno == levo - 1)
    return 0;

  if (levo < desno) {

    return desno - levo;

  }

  //if(desno < levo)
  return levo - 1 - desno;


}

//vraca pozociju za X
long long Binarna(long long X) {

  long long l = 0, d = n - 1;
  long long s;

  // 0 4 6 9 11

  while (l <= d) {
  
    s = (l + d) / 2;

    if (a[s] < X)
      l = s + 1;
    else
      d = s - 1;

  }

  return l;

}

bool Medijana(long long I) {

  int poz = (n / 2) + 1;

  //1 2 3 4 5 6

  poz--;

  if (a[poz] == I)
    return true;

  return false;

}

int main()
{
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);

  long long i, j, q;

  cin >> n >> q;

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

  for (i = 0; i < q; i++)
    cin >> b[i];

  sort(a, a + n, sort1);

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

    if (prvi[a[i]] == 0)
      prvi[a[i]] = i;

    poslednji[a[i]] = i;

  }

  for (i = 0; i < q; i++) {

    bool prov = Medijana(b[i]);

    if (prov == true) {
      cout << 0 << '\n';
      continue;
    }

    long long min1, u1 = 0, u2 = 0;

    if (prvi[b[i]] != 0){

      u1 = Izracunaj(prvi[b[i]], n);

      u2 = Izracunaj(poslednji[b[i]], n);

      min1 = min(u1, u2);

    }
    else {

      long long poz1 = Binarna(b[i]);

      //0cout << "POZ : " << poz1 << '\n';

      min1 = Izracunaj(poz1, n+1) + 1;

    }

    cout << min1 << '\n';

  }




    return 0;
}