1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <bits/stdc++.h>

using namespace std;

int main(){
	int n; cin >> n;
	int sum = 0; int l = 0;
	while(sum < n){
		l++;
		sum += __builtin_popcount(l);
	}
	int roz = sum - n;
	bool czy = false;
	if(roz)
		cout << l-1 << '\n';
		else
		cout << l << '\n';
	for(int i = l; i > 0; i--){
		if(!czy)
			if(__builtin_popcount(i) == roz){
				czy = 1; continue;
			}
		cout << i << ' ';
	}
	cout << '\n';
	return 0;
}