#include <bits/stdc++.h>

using namespace std;
int n,q,a[200005],c,paran[200005],neparan[200005],m,br;
bool b[200005];
void niz(){
  int jed=1;
  int dva=2;
  if (n%2==1){
    neparan[m]=0;
    for (int i=m+1;i<=n;i++){
      neparan[i]=jed;
      jed+=2;
    }
    for (int i=m-1;i>=1;i--){
      neparan[i]=dva;
      dva+=2;
    }
  }
  else {
    paran[m]=0;
    for (int i=m+1;i<=n;i++){
      paran[i]=dva;
      dva+=2;
    }
    for (int i=m-1;i>=1;i--){
      paran[i]=jed;
      jed+=2;
    }
  }
}
int main(){
   cin>>n>>q;
   for (int i=1;i<=n;i++){
     cin>>a[i];
   }
   sort(a+1,a+n+1);
   m=n/2+1;
   niz();
   for (int i=1;i<=q;i++){
     cin>>c;
     br=0;
     if (a[m]==c) cout<<0<<endl;
     else {
         memset(b,false,sizeof(b));
         long long poz1=1000000001;
         long long poz2=-1000000001;
         long long poz;
         for (int i=1;i<=n;i++){
           if (a[i]==c){
             b[i]=true;
             br++;
           }
         }
         for (long long i=m+1;i<=n;i++){
           if (b[i]==true){
             poz1=min(poz1,i);
           }
         }
         for (long long i=m-1;i>=1;i--){
           if (b[i]==true){
             poz2=max(poz2,i);
           }
         }
         if (abs(m-poz1)>abs(m-poz2)){
           poz=poz2;
         }
         else if (abs(m-poz1)<abs(m-poz2)){
           poz=poz1;
         }
         else {
            if (n%2==1){
                poz=poz2;
            }
            else {
                poz=poz1;
            }
         }
         if (n%2==1 and br>0) cout<<neparan[poz]<<endl;
         else if (n%2==0 and br>0) cout<<paran[poz]<<endl;
     }
   }

   return 0;
}