#include <iostream>
#include <algorithm>
using namespace std;
struct node
{
int val = 0;
int index;
}num[100005];
int n, m;
int x;
void find(int x)
{
int l = 1, r = n;
int mid;
while(l <= r)
{
mid = l + (r - l) / 2;
if(num[mid].val == x)
{
cout << num[mid].index << " ";
return ;
}
else if(num[mid].val < x)
l = mid + 1;
else
r = mid - 1;
}
cout << -1 << " ";
}
int main(int argc, char *argv[]) {
cin >> n >> m;
int temp = 0;
for(int i = 1; i <= n; i++)
{
cin >> num[i].val;
if(num[i].val != num[i - 1].val)
{
num[i].index = i;
temp = i;
}
if(num[i].val == num[i - 1].val)
{
num[i].index = temp;
}
}
for(int i = 0; i < m; i++)
{
cin >> x;
find(x);
}
return 0;
}