#include <bits/stdc++.h>
using namespace std;
vector <int> v, liczby;
int main() {
ios_base::sync_with_stdio(false); cin.tie(0);
int n, wynik = 0; cin >> n; bool w = false;
for (int i = 1; i <= 1000000; i++) {
wynik += __builtin_popcount(i);
v.push_back(i);
if(wynik > n) {
w = true;
break;
}
if(wynik == n) break;
}
if(w) {
for (int i = v.size()-1; i >= 0; i--) {
if(wynik - __builtin_popcount(v[i]) >= n) {
v[i] = -1;
wynik -= __builtin_popcount(v[i]);
}
if(wynik == n) break;
}
}
for (int i = 0; i < v.size(); i++) {
if(v[i] > 0) liczby.push_back(v[i]);
}
sort(liczby.rbegin(), liczby.rend());
cout << liczby.size() << "\n";
for (int i = 0; i < liczby.size(); i++) {
cout << liczby[i] << " ";
}
}