#include<stdio.h>
#include<stdlib.h>
#define MINH-10001
typedef struct heap* pheap;
struct heap {
int* data;
int size;};
pheap CreatHeap(int N);voidInsertMin(pheap H, int D);voidOutputPath(pheap H, int I);
int main(){
int N;//n of ele
int M;//n of pathscanf("%d %d",&N,&M);
pheap H=CreatHeap(N);
int i, temp_data;for(i =0; i <N; i++){scanf("%d",&temp_data);InsertMin(H,temp_data);}
int temp_index;
int flag =1;for(i =0; i <M; i++){scanf("%d",&temp_index);if(flag) flag =0;elseprintf("\n");OutputPath(H, temp_index);}return0;}
pheap CreatHeap(int N){
pheap H=(pheap)malloc(sizeof(struct heap));H->data =malloc((N+1)*sizeof(int));H->size =0;H->data[0]=MINH;returnH;}voidInsertMin(pheap H, int D){if(H->size ==1000)return;
int i;for(i =++H->size ;H->data[i /2]>D; i /=2)H->data[i]=H->data[i /2];H->data[i]=D;}voidOutputPath(pheap H, int I){
int flag =1;
int i;for(i =I; i >=1; i /=2){if(flag) flag =0;elseprintf(" ");printf("%d",H->data[i]);}}