#define MaxN 1001
#define MinH -10001
int H[MaxN],size;
void Creat()
{
size=0;
H[0]=MinH;//堆都是从下标为1开始的,在0处设置一个哨兵,最小值。
}
void Insert(int x)
{
int i;
for(i=++size;H[i/2]>x;i/=2)
H[i]=H[i/2];
H[i]=x;
}
int main()
{
int m,n,i,j,x;
scanf("%d %d",m,n);
create();
for(i=0;i<n;i++)
{
scanf("%d",x);
insert(x);
}
for(j=0;j<m;j++)
{
scanf("%d",j);
while(j>1)
{
printf("%d",H[j]);
j/=2;
}
}
}