#include <iostream>
#include <vector>

using namespace std;

int main()
{
	int n, m;
	int count = 0;
	int num;
	int big;
	vector<int> nums1, nums2;
 
	cin >> n;
	cin >> m;
 
	while(count < n)
	{
		cin >> num;
		nums2.push_back(num);
		count++;
		cout << num << " ";
	}
	cout << endl;
	count = 0;
	while (count < n+m)
	{
		cin >> num;
		nums1.push_back(num);
		count++;
		cout << num << " ";
	}
	cout << endl;
	m--;
	n--;

	for (vector<int>::reverse_iterator ritr=nums1.rbegin(); ritr !=  nums1.rend(); ritr++)
	{
		if (m < 0)
		{
			//move the rest of the nums2
			for (; n >= 0; n--)
			{
				*ritr = nums2[n];
				cout << *ritr << endl;
				ritr++;
			}
			break;
		}
		else if (n < 0)
		{
			cout << *ritr << endl;
		}
		else
		{
			if (nums1[m] > nums2[n])
			{
				big = nums1[m];
				m--;
			}
			else
			{
				big = nums2[n];
				n--;
			}
			*ritr = big;
			cout << *ritr << endl;
		}
	}
	return 0;
}