#include <iostream>
#include <vector>

using namespace std;
typedef long long int64;

bool contains(int l, int r, int nr) {
	return (l <= nr && nr <= r);
}

vector<int> spec{2, 3, 5, 7, 23, 53};

int main() {
	int k;
	cin >> k;

	cout << k << "\n";
	for (int b = 0; b < 10; ++b) {
		for (int nr = (1<<(b+1)) - 1; nr >= (1<<b); --nr) {
			cout << nr << " ";
			--k;
			if (k == 0)
				break;
		}
		if (k == 0)
			break;
	}
}