#include<iostream>
#include<queue>
using namespace std;
const int Max=2e5+5;
int n,m;
priority_queue<int,vector<int>,less<int> > u;
priority_queue<int,vector<int>,greater<int> > v;
int a[Max];
int main(){
scanf("%d%d",&m,&n);
int e;
for(int j=1;j<=m;j++){
scanf("%d",a+j);
}
int j=1;
for(int i=1;i<=n;i++){
scanf("%d",&e);
for(;j<=e;j++){
u.push(a[j]);
if(u.size()>i){
v.push(u.top());
u.pop();
}
}
cout<<u.top()<<endl;
if(v.size()>1){
u.push(v.top());
v.pop();
}
}
return 0;
}