#include <iostream>
using namespace std;
int cmp(const void *a, const void *b)
{
return *(int *)a - *(int *)b;
}
int a[20001],b[20001];
int main()
{int i,j,n,m,t=0;// t记录重复的个数
while(cin>>n>>m)
{
for(i=0;i<n+m;i++)
cin>>a[i];
qsort(a, n+m, 4, cmp);
for(i=0,j=0;i<m+n;i++,j++)
{ b[j]=a[i];
if(a[i]==a[i+1])
{j--;
t++;}
}
for(i=0;i<m+n-t-1;i++)
cout<<b[i]<<" ";
cout<<b[i]<<endl;
t=0;
}
return 0;
}
using namespace std;
int cmp(const void *a, const void *b)
{
return *(int *)a - *(int *)b;
}
int a[20001],b[20001];
int main()
{int i,j,n,m,t=0;// t记录重复的个数
while(cin>>n>>m)
{
for(i=0;i<n+m;i++)
cin>>a[i];
qsort(a, n+m, 4, cmp);
for(i=0,j=0;i<m+n;i++,j++)
{ b[j]=a[i];
if(a[i]==a[i+1])
{j--;
t++;}
}
for(i=0;i<m+n-t-1;i++)
cout<<b[i]<<" ";
cout<<b[i]<<endl;
t=0;
}
return 0;
}