#include<bits/stdc++.h>
using namespace std;
#define int long long
void solve()
{
int n,m,cnt=0;
priority_queue<int,vector<int>,less<int>>q1;
priority_queue<int,vector<int>,greater<int>>q2;
unordered_map<int,int>um;
cin>>m>>n;
vector<int>a(m+1);
for(int i=1;i<=m;i++)
{
cin>>a[i];
}
for(int i=1;i<=n;i++)
{
int x;
cin>>x;
um[x]++;
}
for(int i=1;i<=m;i++)
{
if(q1.empty()||q1.top()>=a[i])
{
q1.push(a[i]);
}
else
{
q2.push(a[i]);
}
if(um.count(i))
{
int x=um[i];
while(x--)
{
cnt++;
if(q1.size()>cnt)
{
while(q1.size()>cnt)
{
q2.push(q1.top());
q1.pop();
}
}
else if(q1.size()<cnt)
{
while(q1.size()<cnt)
{
q1.push(q2.top());
q2.pop();
}
}
cout<<q1.top()<<'\n';
}
}
}
}
signed main()
{
solve();
}