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
33
34
35
#include <iostream>
#include <vector>

using namespace std;

int popcount(int a)
{
	return __builtin_popcount(a);
}

int main()
{
	int n;
	cin>>n;
	vector<int> v;
	int cnt=0,i=0;
	while (cnt<1000000){
		cnt+=popcount(i);
		i++;
	}
	while(i--){
		if(cnt-popcount(i)<n){
			v.push_back(i);
		}
		else {
			cnt-=popcount(i);
		}
	}
	cout<<v.size()<<'\n';
	for(auto it:v){
		cout<<it<<' ';
	}
	cout<<'\n';
	return 0;
}