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
28
29
30
31
32
#include<bits/stdc++.h>

using namespace std;
vector<int> numb;
vector<int> res;
int bity(int x){
	int res = 0;
	while(x>0){
		if(x%2 == 1)res++;
		x/=2;
	}
	return res;
}
int main(){
	ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	int n; cin >> n;
	int cnt = 0;
	int akt = 1;
	while(cnt < n){
		cnt += bity(akt);
		numb.push_back(akt);
		akt++;
	}
	//for(int i = 0; i < numb.size(); i++) cout << numb[i]<< " ";
	for(int i = numb.size()-1; i >= 0; i--){
		if(cnt -  bity(numb[i]) < n) res.push_back(numb[i]);
		else cnt -= bity(numb[i]);
	}
	cout << res.size() << "\n";
	for(int i = 0; i < res.size(); i++) cout << res[i] << " ";
	return 0;
}