#include<stdio.h>
#include<algorithm>
using namespace std;
int A[10010],B[10010],visit[10010],C[10010];//一开始数组开小了,提示runtime error
accese ..
int main( )
{
int N,M,i,j,k;
while(scanf("%d%d",&N,&M)!=EOF)
{
k=0;
memset(visit,0,sizeof(visit));
for(i=0;i<N;i++)
scanf("%d",&A[i]);
for(j=0;j<M;j++)
scanf("%d",&B[j]);
sort(A,A+N);
sort(B,B+M);
for(i=0;i<N;i++)
for(j=0;j<M;j++)
if(A[i]==B[j])
visit[i]=1;
i=j=0;
while(i<N&&j<M)
{
if(A[i]<B[j]&&!visit[i])
C[k++]=A[i++];
else if(A[i]>B[j])
C[k++]=B[j++]; //刚开始的时侯在这里没有考虑到相等的情况。。wa了好几次
else if(A[i]==B[j])//如果相等时不处理,将一直死循环。。
i++;
}
while(i<N&&!visit[i])
C[k++]=A[i++];
while(j<M)
C[k++]=B[j++];
for(i=0;i<k;i++)
printf(i?" %d":"%d",C[i]);
puts("");
}
return 0;
}