#include<bits/stdc++.h>
#define N 1000001
#define rg register
#define max(a,b) (a > b ? a : b)
#define min(a,b) (a < b ? a : b)
#define MAXN 0x7fffff
using namespace std;
int ciner,reader,sumer,num[N];
inline int find_into(int want){
int where = -1,io = 1,sum = ciner,time_set = 0;
int temp = (io + sum) / 2;
while(where == -1 && io < sum){
temp = (io + sum) / 2;
if(num[temp] < want)io = temp;
else if(num[temp] > want)sum = temp;
else if(num[temp] == want){
if(temp == 1)return 1;
where = temp;
while(num[where] == num[temp])where--;
return where + 1;
}
if(time_set == 2 && sum == io + 1)io++;
else if(sum == io + 1)time_set++;
}
return where;
}
inline void _file(void){
freopen("data.in","r",stdin);
freopen("data.out","w",stdout);
return ;
}
inline int read(){
int number = 0,flag = 1;
char geter = cin.get();
while((geter > '9' || geter < '0') && geter != '-')geter = cin.get();
if(geter == '-')flag = -1;
while(geter >= '0' && geter <= '9'){
number = number * 10 + geter - '0';
geter = cin.get();
}
return number * flag;
}
int main(void){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
//_file();
cin >> ciner >> reader;
for(int io = 1;io <= ciner;io++)cin >> num[io];
while(reader--){
cin >> sumer;
int anser = find_into(sumer);
cout << anser << " ";
}
cout << endl;
return 0;
}