#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void push(int k,vector<int> &bheap,int &blen,vector<int> &sheap,int &slen,char l);
void pop(vector<int> &bheap,int &blen,vector<int> &sheap,int &slen,char l);
void swap(vector<int> &bheap,vector<int> &sheap,int &blen,int &slen,int &mid,int &id);
int main(){
int n,m;
cin>>n>>m;
int blen=0,slen=0,mid;
vector<int> bheap(n);
vector<int> sheap(n);
vector<int> a(n+1),u(m+1);
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=m;i++){
cin>>u[i];
}
int id=u[1];
mid=a[1];
for(int i=1,j=1;i<=n;i++){
if(a[i]<mid){
push(a[i],bheap,blen,sheap,slen,'b');
}else if(a[i]>mid){
push(a[i],bheap,blen,sheap,slen,'s');
}
if(i>=u[j] && j<=m ){
j++;
swap(bheap,sheap,blen,slen,mid,id);
cout<<mid<<endl;
}
}
}
void swap(vector<int> &bheap,vector<int> &sheap,int &blen,int &slen,int &mid,int &id){
int y=blen;
if(y+1>id){
while(y+1>id){
push(mid,bheap,blen,sheap,slen,'s');
mid=bheap[1];
pop(bheap,blen,sheap,slen,'b');
y=blen;
}
}else if(y+1<id){
while(y+1<id){
push(mid,bheap,blen,sheap,slen,'b');
mid=sheap[1];
pop(bheap,blen,sheap,slen,'s');
y=blen;
}
}
id++;
}
void pop(vector<int> &bheap,int &blen,vector<int> &sheap,int &slen,char l){
if(l=='b'){
bheap[1]=bheap[blen--];
int t=1;
while(t*2<=blen){
int son=t*2;
if(son+1<=blen && bheap[son+1]>bheap[son]){
son++;
}
if(bheap[son]>bheap[t]){
swap(bheap[son],bheap[t]);
t=son;
}else{
break;
}
}
}else if(l=='s'){
sheap[1]=sheap[slen--];
int t=1;
while(t*2<=slen){
int son=t*2;
if(son+1<=slen && sheap[son+1]<sheap[son]){
son++;
}
if(sheap[son]<sheap[t]){
swap(sheap[son],sheap[t]);
t=son;
}else{
break;
}
}
}
}
void push(int k,vector<int> &bheap,int &blen,vector<int> &sheap,int &slen,char l){
if(l=='b'){
bheap[++blen]=k;
for(int i=blen;i/2>=1;i/=2){
if(bheap[i/2]<bheap[i]){
swap(bheap[i/2],bheap[i]);
}else{
break;
}
}
}else if(l=='s'){
sheap[++slen]=k;
for(int i=slen;i/2>=1;i/=2){
if(sheap[i/2]>sheap[i]){
swap(sheap[i/2],sheap[i]);
}else{
break;
}
}
}
}