#include<bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5;
int m,n,a[N],b[N];
multiset <int> s;
multiset <int> :: iterator it,it2;
inline int in(){
char a = getchar();
int k = 0 , kk = 1;
while(a>'9'||a<'0'){
if(a=='-') kk = -1;
a = getchar();
}
while(a>='0'&&a<='9'){
k = k*10 + a - '0';
a=getchar();
}
return k*kk;
}
void out(int k){
if(k<0) putchar('-'),k=-k;
if(k>9) out(k/10);
putchar(k%10+'0');
}
signed main(){
m = in(), n = in();
for(int i=1;i<=m;i++){
a[i] = in();
}
s.insert(a[1]);
it = s.begin();
int last = 2;
for(int i=1;i<=n;i++){
b[i] = in();
for(int j=last;j<=b[i];j++){
s.insert(a[j]);
if(a[j]<=*it) --it;
}
out(*it);
putchar('\n');
++it;
last = b[i] + 1;
}
return 0;
}