#include<bits/stdc++.h>

using namespace std;

long long glasovi[200000],granica[200000],resenje[200000];

int funkcija(int N, int X)
{
    int mid;
 
    // Initialise starting index and
    // ending index
    int low = 0;
    int high = N;
 
    // Till low is less than high
    while (low < high) {
        mid = low + (high - low) / 2;
 
        // If X is less than or equal
        // to arr[mid], then find in
        // left subarray
        if (X <= glasovi[mid]) {
            high = mid;
        }
 
        // If X is greater arr[mid]
        // then find in right subarray
        else {
            low = mid + 1;
        }
    }
   
    // if X is greater than arr[n-1]
    if(low < N && glasovi[low] < X) {
       low++;
    }
       
    // Return the lower_bound index
    return low;
}

int main(){
	long long n,q;
	cin>>n>>q;
	for(int i=0;i<n;i++){
		cin>>glasovi[i];
	}
	sort(glasovi,glasovi+n);
	for(int i=0;i<q;i++){
		cin>>granica[i];
	}
	for(int i=0;i<q;i++){
		if(granica[i]>glasovi[n-1]){
			resenje[i]=n;
		}
		else if(granica[i]<glasovi[0]){
			resenje[i]=n+1;
		}
		else{
			int pozicija = funkcija(n,granica[i])+1;
			
			if(granica[i]!=glasovi[pozicija-1]){
				long long pomocna=(n+1)/2;
				long long medijana=pomocna+1;
				resenje[i]=abs(pozicija-medijana)+1;
			}
			else{
				long long pomocna=n/2;
				long long medijana=pomocna+1;
				//cout<<pozicija<<" "<<medijana<<endl;
				resenje[i]=abs(pozicija-medijana);
			}
		}
	}
	for(int i=0;i<q;i++){
		cout<<resenje[i]<<"\n";
	}
	return 0;
}