#include <string.h>

#include <stdio.h>


void brzi(long long n1[], long long prvi, long long zadnji){
	
	long long i, i1, piv, pom;
	
	if(prvi<zadnji){
		
		i = prvi;
		i1 = zadnji;
		piv = prvi;
		
		while(i<i1){
			
			while(n1[i]<=n1[piv] && i<zadnji) i++;
			while(n1[i1]>n1[piv]) i1--;
			
			if(i<i1){
				
				pom = n1[i1];
				n1[i1] = n1[i];
				n1[i] = pom;
				
			}
			
		}
		
		pom = n1[i1];
		n1[i1] = n1[piv];
		n1[piv] = pom;
		brzi(n1, i1+1, zadnji);
		brzi(n1, prvi, i1-1);
	}
	
}

long long bin(long long n1[], long long levo, long long desno, long long a){
	
	long long i, da, sredina;
	
	while(levo<=desno){
		
		sredina = (levo+desno)/2;
		if(a == n1[sredina]) return sredina;
		else if(a>n1[sredina]) levo = sredina+1;
			else desno = sredina-1;
		
	}
	
	return -1;
}

long long sinisamali(long long n1[], long long x, long long n){
	
		
		
		long long i, i1 = 0;
		long long p = 0, n2;
		
		n2 = n1[n-1];
		
		
		
		if(n1[(n/2)] == x) return 0;
			
			
		if(bin(n1, 0, n-1, x) == -1 && x<n2){
				
				n1[n] = x;
				n++;
				brzi(n1, 0, n-1);
				
			}
	
	
		if(x>n2){
	
		
			
	
			
			while(n1[(n/2)] != x){
			
			
				n1[n] = x;
				p++;
				n++;
				brzi(n1, 0, n-1);
			}
					
			if(n1[(n/2)] == x) return p;
				
		} 
		



	
			
		if(x<n2){
	
		
			
		while(n1[(n/2)] != x){
				n1[n] = x+1;
		
				p++;
				n++;
				
				brzi(n1, 0, n-1);
		
			
				
			}
			if(n1[(n/2)] == x) return p;
	
	}
	
}

int main(){
	
	long long n, q, i, i1, p = 0;
	
	scanf("%lld %lld", &n, &q);
	
	long long n1[n], n2[n], n3[n], n4[n];
	
	for(i = 0; i<n; i++){
		scanf("%lld", &n1[i]);
	}
	
	for(i = 0; i<q; i++){
		scanf("%lld", &n2[i]);
	}
	
	brzi(n1, 0, n-1);
	
	for(i = 0; i<q; i++){
		p = 0;
	
		printf("%d ", sinisamali(n1, n2[i], n));
	
	}
	
		
	return 0;
}