#include <stdio.h>
#include <vector>

using namespace std;

int a[20];
vector<int> ans;

void set(int);

void unset(int n) {
	if(n==1) {
		ans.push_back(-1);		
		a[0]=0;
	} else {
		set(n-1);
		ans.push_back(-n);		
		
		a[n-1] = 0;
		unset(n-1);
	}
}

void set(int n) {

	if (n==1) {
		ans.push_back(1);		
		
		a[0] = 1;
	} else {
		set(n-1);
		ans.push_back(n);		
		a[n-1] = 1;
		unset(n-1);
	}
}

int main ()
{
	freopen("cave.in", "r", stdin);
	freopen("cave.out", "w", stdout);

	int n;

	scanf("%i", &n);


	for (int i=n; i>0; i--) {
		set(i);
	}
	
	printf("%d\n", ans.size());
	for (int i = 0; i < ans.size() - 1; i++) {
	         printf("%d ", ans[i]);
	}
	printf("%d\n", ans.back());
	return 0;
}
