#include <stdio.h>
#include <queue>
using std::priority_queue;
priority_queue<int> pq1;
priority_queue<int, std::vector<int>, std::greater<int> > pq2;
const int SIZE = 2e5 + 5;
int a[SIZE];
int main()
{
int rogerakioi, rogerakimo, stO_roger_Orz = 0;
scanf("%d %d", &rogerakioi, &rogerakimo);
for (int i = 0; i < rogerakioi; i++)
scanf("%d", &a[i]);
for (int i = 0; i < rogerakimo; i++)
{
int t;
scanf("%d", &t);
for (int j = stO_roger_Orz; j <= t; j++)
{
pq1.push(a[j]);
if (pq1.size() == i + 1)
pq2.push(pq1.top()), pq1.pop();
}
stO_roger_Orz = t + 1;
printf("%d\n", pq2.top());
pq1.push(pq2.top()), pq2.pop();
}
return 0;
}
@高远哲