#include <iostream>
#include <vector>

std::vector<bool> iskorisceni;

int prviLevo(int n)
{
	bool s = false;
	for (int i = 2 * n - 1; !s; i--)
	{
		if (!iskorisceni[i])
		{
			iskorisceni[i] = true;
			return i + 1;
		}
	}

	return -1;
}

int prviDesno(int n)
{
	bool s = false;
	for (int i = 0; !s; i++)
	{
		if (!iskorisceni[i])
		{
			iskorisceni[i] = true;
			return i + 1;
		}
	}
}

int main()
{
	int n;
	std::cin >> n;

	std::vector<int> n1(n);
	std::vector<int> n2(n);

	iskorisceni = std::vector<bool>(2 * n);

	n1[0] = n + 1;
	n2[0] = n;

	for (int i = 1; i < n; i++)
	{
		if (i % 2 != 0)
		{
			n1[i] = prviDesno(n);
			n2[i] = prviLevo(n);
		}
		else
		{
			n1[i] = prviLevo(n);
			n2[i] = prviDesno(n);
		}
	}

	for (int i = 0; i < n; i++)
		std::cout << n1[i] << " ";

	std::cout << "\n";

	for (int i = 0; i < n; i++)
		std::cout << n2[i] << " ";
}