#include <iostream>
#include <stdlib.h>
using namespace std;
const int N = 100000;
int a[N];
int search(int left, int right, int key)
{
int mid;
while(left < right)
{
mid = (left + right) / 2;
if(a[mid] > key)
right = mid;
else
left = mid;
if(left + 1 == right)
{
if(abs(key - a[left]) > abs(key - a[right]))
left = right;
else
right = left;
}
}
return left;
}
int main()
{
int n, m;
cin >> n;
for(int i=0; i<n; i++)
cin >> a[i];
cin >> m;
for(int i=0; i<m; i++)
{
int temp;
cin >> temp;
int ans = search(0, n - 1, temp);
cout << a[ans] << endl;;
}
return 0;
}
#include <stdio.h>
#define N 100000
int a[N];
int find(int left, int right, int x)
{
int mid;
while(left <= right)
{
mid = (left + right) / 2;
if(a[mid] == x)
return a[mid];
else if(a[mid] < x)
left = mid + 1;
else
right = mid - 1;
}
return a[right];
}
int main(void)
{
int n, m, x, i;
while(scanf("%d%d", &n, &m) != EOF) {
a[0] = -1;
for(i=1; i<=n; i++)
scanf("%d", &a[i]);
for(i=1; i<=m; i++) {
scanf("%d", &x);
printf("%d\n", find(1, n, x));
}
}
return 0;
}