#include #include #include #include using namespace std; struct edge{int go,next;} e[1000005]; int n,cnt,m,a[1000005]; map ljb; int main(){ while (~scanf("%d%d",&n,&m)){ ljb.clear();cnt=0; for (int i=1;i<=n;i++) scanf("%d",&a[i]); for (int i=n;i;i--){e[++cnt].go=i;e[cnt].next=ljb[a[i]];ljb[a[i]]=cnt;} for (int i=1;i<=m;i++){ int x;scanf("%d",&x); int ll=ljb[x]; if (ll==0) printf("-1\n"); else printf("%d\n",e[ll].go); ljb[x]=e[ll].next; } } }