#include <stdio.h>
#include <stdlib.h>
int main() {
int n ,m;
scanf("%d %d",&n,&m);
//为a1分配动态内存
int* a1=(int*)malloc(n * sizeof(int));
if(a1 == NULL){
printf("内存分配失败!\n");
exit(1);
}
for(int i = 0;i < n;++i){
scanf("%d",a1+i);//等价于&a1[i]
}
//为a2分配动态内存
int* a2=(int*)malloc(m * sizeof(int));
if(a2 == NULL){
printf("内存分配失败!\n");
free(a1);//释放已分配的a1,避免内存泄漏
exit(1);
}
for(int i = 0;i < m;++i){
scanf("%d",a2+i);//等价于&a2[i]
}
//为a3分配动态内存
int* a3=(int*)malloc((n+m) * sizeof(int));
if(a1 == NULL){
printf("内存分配失败!\n");
free(a2);//释放已分配的a2,避免内存泄漏
exit(1);
}
for(int i = 0;i < n;++i){
a3[i] = a1[i];
}for(int i = 0;i < m;++i){
a3[n+i] = a2[i];
}
//冒泡排序
for(int i = 0;i < n+m-1;++i){
for(int j = 0;j < n+m-1-i;++j){
if(a3[j] > a3[j+1]){
int temp = a3[j];
a3[j] = a3[j+1];
a3[j+1] = temp;
}
}
}
for(int i = 0;i < n+m;++i){
printf("%d ",a3[i]);
}
//释放动态内存
free(a1);
free(a2);
free(a3);
a1=NULL;
a2=NULL;
a3=NULL;
return 0;
}